C#开发 —— 基础知识
C# 用于开发可以运行在 .Net 平台上的应用程序,C# 本身只是一种语言,尽管它是用于生成面向 .Net 环境的代码,但它本身不是 .Net 的一部分
Console.WriteLine
命名空间 —— using 指令将命名空间名所标识的命名空间内的类型成员导入到当前编译单元中,从而可以直接使用(不必加上完全限定名)
一种程序组织形式 —— 内部,或外部 (对外公开的组织结构)
可以在项目的命名空间中定义命名空间,但这样不能用using 来引用自定义的命名空间
C# 的所有语句都必须位于类内
Main 方法是程序的入口点,一个C#程序只能有一个main方法,必须是静态
值类型是从 System.ValueType 类继承而来的类型 —— 栈
引用类型 —— 必须在托管堆中为引用类型变量分配内存,由垃圾回收机制来管理控制 —— 堆
每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值 int i=new int(); 等价于 Int32 i = new Int32();
C#的所有值类型均隐式派生自 System.ValueType , 而System.ValueType 直接派生自 System.Object —— System.ValueType 本身是一个类类型而不是值类型,其关键在于ValueType重写了Equals方法,从而对值类型按照实例的值比较,而不是引用地址来比较
int ls = ; //声明一个int类型的变量ls
byte shj = ; //声明一个byte类型的变量shj
Console.WriteLine("ls={0}", ls); //输出int类型变量ls
Console.WriteLine("shj={0}", shj); //输出byte类型变量shj
C# 中使用 enum 来声明枚举类型
类型转换
隐式
显式
装箱和拆箱 (装箱 —— 将值类型隐式转换成引用类型,拆箱 —— 允许将引用类型显示转换为值类型)
int i = ; //声明一个int类型变量i,并初始化为2008
object obj = i; //声明一个object类型obj,其初始化值为i
Console.WriteLine("1、i的值为{0},装箱之后的对象为{1}", i, obj);
i = ; //重新将I赋值为927
Console.WriteLine("2、i的值为{0},装箱之后的对象为{1}", i, obj);
Console.ReadLine();
装箱后改变值类型变量的值,并不会影响装箱对象的值
int i = ; //声明一个int类型的变量i,并初始化为112
object obj = i; //执行装箱操作
Console.WriteLine("装箱操作:值为{0},装箱之后对象为{1}", i, obj);
int j = (int)obj; //执行拆箱操作
Console.WriteLine("拆箱操作:装箱对象为{0},值为{1}", obj, j);
Console.ReadLine();
拆箱前后类型要保持一致,否则会出现异常
常量 用const 修饰,且创建常量是必须设置它的初始值
C# 中的特殊运算符
is 检查变量是否为指定的类型,不能重载 is 运算符
typeof 用于获得系统原型对象的类型,也就是 Type 对象。Type类包含关于值类型和引用类型的信息
Type mytype = typeof(int);
Char 在 C#中表示一个 Unicode 字符
InControl
IsDigit
IsLetter
IsLetterOrDigit
IsLower
IsNumber
IsPunctuation 标点符号类别
IsSeparator 分隔符类别
IsUpper
IsWhiteSpace
Parse 将指定字符串的值转换为他的等效Unicode字符
ToLower
ToUpper
字符串 string ,它是String类的别名
String 对象的值是不可改变的,String类所定义的变量是一个引用类型
比较字符串
Compare(bool ignoreCase)
CompareTo —— 以实例对象本身与指定的字符串作比较
Equals —— 两个字符串是否相同 (区分大小写和区域性)
格式化字符串
Format —— 索引占位符(格式项)
string StrA = "用一生下载你"; //声明字符串StrA
string StrB = "永不放弃"; //声明字符串StrB
string newstr = String.Format("{0},{1}!!!", StrA, StrB); //格式化字符串
用于日期的格式规范
DateTime dt = DateTime.Now; //获取系统当前日期
string strB = String.Format("{0:D}", dt); //格式化成短日期格式
截取字符串
Substring
分割字符串
Split
string StrA = "用^一生#下载,你"; //声明字符串StrA
char[] separator = { '^', '#', ',' }; //声明分割字符的数组
String[] splitstrings = new String[]; //声明一个字符串数组
splitstrings = StrA.Split(separator); //分割字符串
插入和填充字符串
Insert PadLeft PadRight
删除字符串
Remove
复制字符串
Copy CopyTo —— 将字符串的某一部分复制到另一个数组中
string str1 = "用一生下载你"; //声明一个字符串变量str1并初始化
char[] str = new char[]; //声明一个字符数组str
//将字符串str从索引1开始的4个字符串复制到字符数组str中
str1.CopyTo(, str, , );
替换字符串
Replace
可变字符串类 StringBuilder
存在于 System.Text 命名空间中 —— String对象是不可改变的,每次使用String类中的方法时,都要在内存中创建一个新的字符串对象。如需要对字符串执行重复修改 —— StringBuilder
StringBuilder LS = new StringBuilder("用一生下载你", );
LS.Append("VS芸烨湘枫"); //使用Append方法将字符串追加到LS的末尾
Console.WriteLine(LS); //输出LS
//使用AppendFormat方法将字符串按照指定的格式追加到LS的末尾
LS.AppendFormat("{0:C}", Num);
Console.WriteLine(LS); //输出LS
LS.Insert(, "名称:"); //使用Insert方法将“名称:”追加到LS的开头
Console.WriteLine(LS); //输出LS
//使用Remove方法从LS中删除索引15以后的字符串
LS.Remove(, LS.Length - );
Console.WriteLine(LS); //输出LS
//使用Replace方法将“名称:”替换成“一生所爱”
LS.Replace("名称", "一生所爱");
C#开发 —— 基础知识的更多相关文章
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
- iOS开发——总结篇&IOS开发基础知识
IOS开发基础知识 1:Objective-C语法之动态类型(isKindOfClass, isMemberOfClass,id) 对象在运行时获取其类型的能力称为内省.内省可以有多种方法实现. 判断 ...
- Ext常用开发基础知识
Ext常用开发基础知识 组件定义 //这种方法可以缓存所需要的组件 调用起来比较方便(方法一 ) Ext.define('MySecurity.view.home.HomePanel', { //添加 ...
- IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
1.前言 一个安全的信息系统,合法身份检查是必须环节.尤其IM这种以“人”为中心的社交体系,身份认证更是必不可少. 一些PC时代小型IM系统中,身份认证可能直接做到长连接中(也就是整个IM系统都是以长 ...
- IM开发基础知识补课(五):通俗易懂,正确理解并用好MQ消息队列
1.引言 消息是互联网信息的一种表现形式,是人利用计算机进行信息传递的有效载体,比如即时通讯网坛友最熟悉的即时通讯消息就是其具体的表现形式之一. 消息从发送者到接收者的典型传递方式有两种: 1)一种我 ...
- [No0000138]软件开发基础知识
1. 本文目的 本文目的在于,介绍软件开发的各种基础知识 以实现,看了之后,对于软件开发的很多领域的基础知识有所了解 如此在进行后续的真正的软件开发时,遇到各种细节知识,才会明白由来和背景知识 第 1 ...
- IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...
- IM开发基础知识补课(七):主流移动端账号登录方式的原理及设计思路
1.引言 在即时通讯网经常能看到各种高大上的高并发.分布式.高性能架构设计方面的文章,平时大家参加的众多开发者大会,主题也都是各种高大上的话题——什么5G啦.AI人工智能啦.什么阿里双11分分钟多少万 ...
- 3D开发基础知识和简单示例
引言 现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象. 那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当 ...
- 为企业应用开发提速,写给企业IT部门的低代码开发基础知识
简介:应用程序开发长期以来一直是IT部门和业务部门面临的问题. IT部门总是被新的应用程序需求弄得不堪重负.他们不可能完成业务部门想要完成的每一个项目. 同时,业务部门的用户厌倦了等待,并开始完全绕过 ...
随机推荐
- PostgreSQL Replication之第四章 设置异步复制(5)
4.5 使流复制更健壮 当连接到master时,slave要做的第一件事情是赶上master.但是,这会一直工作吗?我们已经看到,我们可以使用由基于流和基于文件组成的混合设置.这给了我们一些额外的安全 ...
- HTML5的核心内容
开发者可以放心地使用html5的理由 兼容性.HTML5在老版本的浏览器可以正常运行,同时支持HTML5的新浏览器也能正常运行HTML4,用HTML4创建出来的网站不是必须全部重建的. 实用性.HTM ...
- 洛谷1005 【NOIP2007】矩阵取数游戏
问题描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...
- 【模板】2-SAT 问题(2-SAT)
[模板]2-SAT 问题 题目背景 2-SAT 问题 模板 题目描述 有n个布尔变量 \(x_1\) ~ \(x_n\) ,另有m个需要满足的条件,每个条件的形式都是" \(x_i\) ...
- 2014 CodingTrip - 携程编程大赛 (预赛第二场)
1001: 食物链(poj1182),直接贴代码,稍作可过 并查集 // // main.cpp // 携程1 // // Created by zhang on 14-4-11. // Copyri ...
- etTimeout来实现setInterval
etTimeout来实现setInterval <script type="text/javascript"> function interval(func, w, t ...
- 编译bash实现history的syslog日志记录
摘要: 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1763145 一 ...
- 对GPDB查询计划的Motion结点的理解
GPDB在进行join查询时,可能会产生Motion结点 根据官方文档,总共有这几种Motion: redistribute 重分布(用hash取模的方法把join字段重分布到各个segment,相当 ...
- 火狐不支持innerText属性,只支持innerHTML属性
做的一个js的小程序放到火狐上用不了了,原因是innerText不是标准属性,换成innerHTML属性就好,但是可能需要把html标签给去掉
- vmware下ubuntu的网络配置
捣弄了vmnet0和vmnet8连接后,ubuntu上不了网了,今天突然解决了这个问题. 打开vmware后,点编辑-->虚拟网络编辑器 这里我使用的是NAT模式,所以要修改vmnet8 点vm ...