首页 > 代码库 > C#开发 —— 基础知识

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 = 927;                                //声明一个int类型的变量ls            byte shj = 255;                            //声明一个byte类型的变量shj            Console.WriteLine("ls={0}", ls);                //输出int类型变量ls            Console.WriteLine("shj={0}", shj);                //输出byte类型变量shj

C# 中使用 enum 来声明枚举类型

类型转换

隐式

显式

装箱和拆箱 (装箱 —— 将值类型隐式转换成引用类型,拆箱 —— 允许将引用类型显示转换为值类型)

int i = 2008;                                //声明一个int类型变量i,并初始化为2008            object obj = i;                            //声明一个object类型obj,其初始化值为i            Console.WriteLine("1、i的值为{0},装箱之后的对象为{1}", i, obj);            i = 927;                                    //重新将I赋值为927            Console.WriteLine("2、i的值为{0},装箱之后的对象为{1}", i, obj);            Console.ReadLine();

装箱后改变值类型变量的值,并不会影响装箱对象的值

int i = 112;                                //声明一个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[100];                        //声明一个字符串数组            splitstrings = StrA.Split(separator);                            //分割字符串

插入和填充字符串

Insert    PadLeft    PadRight

删除字符串

Remove

复制字符串

Copy   CopyTo —— 将字符串的某一部分复制到另一个数组中

string str1 = "用一生下载你";                    //声明一个字符串变量str1并初始化            char[] str = new char[100];                        //声明一个字符数组str            //将字符串str从索引1开始的4个字符串复制到字符数组str中            str1.CopyTo(1, str, 0, 4);

替换字符串

Replace

 

 

可变字符串类 StringBuilder

存在于 System.Text 命名空间中 —— String对象是不可改变的,每次使用String类中的方法时,都要在内存中创建一个新的字符串对象。如需要对字符串执行重复修改 —— StringBuilder

StringBuilder LS = new StringBuilder("用一生下载你", 100);            LS.Append("VS芸烨湘枫");                    //使用Append方法将字符串追加到LS的末尾            Console.WriteLine(LS);                        //输出LS            //使用AppendFormat方法将字符串按照指定的格式追加到LS的末尾            LS.AppendFormat("{0:C}", Num);            Console.WriteLine(LS);                        //输出LS            LS.Insert(0, "名称:");                        //使用Insert方法将“名称:”追加到LS的开头            Console.WriteLine(LS);                        //输出LS            //使用Remove方法从LS中删除索引15以后的字符串            LS.Remove(15, LS.Length - 15);            Console.WriteLine(LS);                        //输出LS            //使用Replace方法将“名称:”替换成“一生所爱”            LS.Replace("名称", "一生所爱");