zoukankan      html  css  js  c++  java
  • C#基础札记

    内容提要:
    ->1、Visual Studio开发工具
    ->2、命名空间
    ->3、代码规范
    ->4、流程控制
    ->5、三元表达式
    ->6、方法(返回值、参数)
    ->7、数据类型(int、数组、枚举、结构)
    ->8、控制台应用程序
    ->9、WinForm应用程序
    ->10、方法重载与重用
    
    1、Visual Studio开发工具
    (1)为解决方案新建一个项目:
    	(A)如果目前只有一个项目:文件-添加-新建项目
    	(B)如果有两个以上的项目:解决方案名称右键-添加-新建项目
    (2)设定当前项目为启动项:解决方法-属性中设置
    
    2、命名空间 同一个命名空间下,成员才可随时被访问。
    	->C#的命名空间是可以随意改变的,只要在同一个项目当中,不论程序文件放在哪里,都是通过命名空间实现逻辑划分的。 	
    	->在同一个项目中,同一个命名空间下,成员可随时被访问。
    	->在同一个项目中,不同的命名空间下,访问需要(1)using先导入命名空间,或访问时写全命名空间
    	->在不同的项目中,命名空间名称相同,也不能视作同一个命名空间,访问需要(1)添加对项目的引用,访问时带上各自的前缀,以示区别。
    	->在不同的项目中,命名空间也不相同,访问需要(1)添加对项目的引用(2)通过using 先导入命名空间,或在访问时写全命名空间。
    	
    	小结:访问条件是同项目,同命名空间。项目不同需引用项目,命名空间不同需using导入或访问时写全命名空间名。
    
    3、代码规范
    	(1)命名规范:
    		-> A、变量要有含义,不要用以下的方式,而是用如num1,num2;
    		-> B、命名方法:骆驼(camelCase)与帕斯卡(PascalCase)
    		  局部变量:使用骆驼camelCase命名法,第一个单词小写,后面单词首字母大写。
    		  类和方法:使用PascalCase,所有单词首字母大写
    	(2)注释:
    		-> 行注释:   //注释该行
    		-> 行间注释: /*  注释一段文本,直到遇到
    						注释一段文本,直到遇到
    					  */
    		-> 文档注释: ///
    			///
    			/// 该注释会生成XML文档
    			///
    			///向方法传入的第一个参数
    			///向方法传入的第二个参数
    			///返回值
    
    4、流程控制
    -> 选择结构 if、if-else、if-else if  switch-case
    -> 循环结构While、do-while  for、foreach
    -> 跳转语句break、 continue、 goto(认为禁用)
    (1)每一个逻辑都是使用这两个逻辑(选择、循环)进行混合实现。
    跟计数变量有关的一般用for循环
    跟数字无关或跟bool型值有关的一般用while循环
    (2)switch-case语法
    在case中存放用来比照的值,根据传进来的数据定位到相应选项要执行的代码块
    每一个case后都需要一个break(多条case匹配一个执行代码的时候,可以省略break)
    (3)语法熟练掌握:
    for循环  先执行i=0的一次,然后i++,条件为真继续循环,条件为假,结束循环。
    		  for (int i = 0; i < 5; i++) { }
    break     跳过循环体的剩余部分直接退出结构体或循环体
    continue  语句是跳过循环体的剩余部分而继续下一次循环,非循环体跳出往后执行
    
    5、三元表达式 表达式1?表达式2:表达式3
        表达式1为true则返回表达式2,否则返回表达式3
    	int num1 =53,num2 = 27
        int num3 = num1 > num2 ? num1: num2;
        Console.WriteLine("最大的数是:{0}", num3);
    
    6、方法 方法就是函数,是重用的一种机制
    (1)没有参数与返回值的方法,当做一种功能方法来用
    [public] [static] void 方法名() {//方法体}
    	->方法定义在哪儿?(类的里面,其他方法的外面)
    	->方法中定义的变量为局部变量,只在该方法中(一对花括号中)起作用
    	->由Main方法直接使用的方法,需要加static,表示静态方法(不加static需要new实例才能调用)
    (2)带参数无返回值的方法:
    	[public] [static] void 方法名(参数类型1 参数1, 参数类型2 参数2, ... )
    	{
    		//方法体
    	}
    (3)带参数有返回值的方法
    	[public] [static] 返回类型 方法名(参数类型1 参数1, 参数类型2 参数2, ... )
    	{
    		//方法体
    		return 返回的数据
    	}
    
    7、数据类型
    	C# 是强类型语言,因此每个变量和对象都必须具有声明的数据类型。
    	C# 数据类型可描述为:
    	值类型(存储值)。这些类型包括基元数值类型、枚举和结构,还包括这几种类型对应的可空类型(如booleean? Married = null)。所有值类型的变量在声明时都有默认值。
    	引用类型(存储对实际数据的引用)。这些类型包括类、接口、数组和委托。
    	用户定义类型(如 class 或 interface)。
    	匿名类型,它由一组封装在无名称引用类型中的公共属性组成。
    	类变量的赋值:用该类型的其他变量指向的实例赋值,或创建一个新实例赋值。
        (通常情况,特别是用户新自定义的一个类,是没有现成的实例可用来赋值的,一般声明变量的同时new一个实例赋给它。)
    
    7.1、Int32  转换数字的方法
    	int num = Convert.ToInt32(字符串);
    	-> 如果字符串转换成功,则num中为对应的数字
    	-> 如果字符串转换不成功就会报异常
    	-> 处理异常可以使用try-catch代码
    	try
    	{
    		// 放可能出现异常放的代码
    	}
    	catch
    	{
    		// 如果出现异常就执行这一段代码
    	}
    	注意:凡是定义一个变量,最好给一个默认值。
    
    7.2、数组 一次性定义一定数量的相同类型的变量
    	类型名[] 变量名 = new 类型名[数量];
    	int[] nums = new int[10000];
    	int[] nums = new int[3] {1,2,3};   //{1,2,3}为使用初始化器赋值
    	-> 初始化的时候一定要数据一致
    	-> 如果中括号中显示的是10,而后面花括号中只有3个变量,则报错
    	   
    	int[] nums = new int[] {4,5,6};
    	int[] nums = {4,5,6};
    	-> 这种初始化,只有在定义变量的时候才能进行
    
    7.3、枚举 枚举是一个类型,元素在本质上是int值,元素的值可强制转化为int类型
    	-> 语法:
    	(1)定义在类的里面,方法的外面
    	(2)enum 枚举类名 {元素名1[=int值1],元素名2,元素名3[=int值3],…}
    	(3)使用 枚举名.元素名 来获取一个枚举值
    	-> 特点:
    	(1)默认情况下,枚举类型的第一个元素的值为0(int型)
    	(2)一个元素如果没有赋值,该元素的值是在前一个元素的值上加1。
    	(3)输出枚举元素:用ToString()方法获得元素名,用强制转换为int获取元素的值
    	(4)也可以将一个int值强制转化为枚举类型来获取元素名称。
    	
    	->示例:以下代码执行后打印 “south121202east”
        class Program
        {
            enum Direction 
            {
                east=11,south,west=1201,north
            }
            static void Main(string[] args)
            {
                Direction dir = Direction.south;
                Console.Write(dir);
                Console.Write((int)dir);
                Console.Write((int)Direction.north);
                Console.Write((Direction)11);
    			Console.ReadKey();
            }
    }
    
    7.4、结构 结构是一个类型,在自定义中用得少,在系统定义中用得多
     示例:
    (1)定义结构 颜色
        struct MyColor
        {
            public int red;                //->成员需要使用Public修饰才允许被访问
            public int green;              //->结构中不能有实例字段初始值
            public const int number = 10;  //->结构中只有常量才允许有初始值
    	    
            public MyColor(int r,int g,)    //结构中有构造方法,给每个字段赋初值
            {
                red = r;
                green = g;
            }
    		//public MyColor()         //->不能显示的声明无参构造方法
    		public void Function()      //->结构中也可以有方法
            {
                Console.WriteLine("这是结构中的方法!");
            }
    	}
    (2)使用结构 
        使用结构前,必须先声明实例并给其全部字段赋初值(通过构造方法或直接赋值)
        class Program
        {
            static void Main(string[] args)
            {      
    			//MyColor m = new MyColor(99,100);
    			MyColor m ;
                m.red = 200; 
                m.green = 300;
                Console.WriteLine(m.red);
                m.Function();
                Console.ReadKey();
            }
    }
    
    8、控制台应用程序  Console.Writline() 方法
    	-> 输出0个参数 换行 Console.Writline()	
    	-> 输出1个参数 
    		-> 输出文本Console.Writline("这是一段文本")
    		-> 变量的值Console.Writline(num)
    	-> 输出多个参数,第一个参数必须是字符串(参数中可包含占位符),其后的每一个参数都是为占位符填值的。
    		->Console.Writline("num ={0}.str = {1}",num,str)
    
    9.1、WinForm应用程序(CS)
    	-> 怎么创建WinForm程序
    	-> Winform程序会一直监听我们的动作,但是不会做出任何响应
    	-> 根据我们的动作,注册方法(事件)
    	-> 一旦注册以后,我们只要是做这个动作,方法就会被调用一次
    	
    	-> 创建窗体、拖控件、设计界面与功能
    	-> 根据各个控件设定其属性添加事件响应方法
    	-> 测试编译运行
    
    9.2、Form类  窗体就是一个类,要显示一个窗体:
    	A、new一个窗体,赋给一个变量fm
    	B、调用fm.show()方法显示“非模态”窗体,窗体之间没有关系。
           非模态对话框不能处理TAB键、快捷键等按键事件,不能在非模态对话框中通过按TAB键切换各控件之间的焦点(Focus)。
    	C、调用fm.showDialog()方法显示“模态”窗体,关闭新窗体才能访问旧窗体。
    	   private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                this.Text = e.X + "," + e.Y;
            }
    		private void button1_Click(object sender, EventArgs e)
            {
                MessageBox.Show("点我了!");
                Form f2 = new Form2();
                f2.Show();
                Form f3 = new Form2();
                f3.ShowDialog();
            }
    	D、窗体的StartPosition属性,值是枚举类型
    	   构造方法中代码:this.StartPosition = FormStartPosition.Center;
    	   this.Location = new Point(1023,0); 可以做窗体飘动效果(或闪屏效果)
    	E、窗体的属性FormBorderStyle设置为None后,窗台将不能移动。 可手动添加移动、最大化、最小化事件。
    	   
    10.1、方法的重载(重要)
    	方法的重载指的是同一个类中的同名方法,是为了实现相似的功能,而使用统一的方法处理不同类型的数据。
    	重载必须满足以下三点:
    	1)、方法的名称必须相同。
    	2)、方法的参数必须不同,这里的不同分三种情况:
    		a、参数个数不同,类型不限;
    		b、参数个数相同,参数类型不同;
    		c、参数个数和类型都相同,参数顺序不同;
    	3、方法的返回类型和修饰符可以相同,也可以不同。
    	
    	判断方法重载是否合理:
    	-> 去掉方法名前的修饰符 返回类型
    	-> 去掉方法体
    	-> 去掉参数,留下参数类型
    	-> 合理的重载就是保证留下来的代码不会重合
    
    10.2、方法的重用 
    	将一个方法封装起来,在需要的地方调用。
    	典型的是通过类库将方法封装成.dll程序集,任何项目只要引用这个dll文件后,就可以调用这个方法,从而实现重用。
    
    
  • 相关阅读:
    book pile SGU
    Inversions SGU
    蒟蒻LQL的博客
    控制台注入DLL代码
    Windows消息类型
    windows编程中的数据类型
    单链表的创建与遍历
    定义函数指针
    启动外部程序
    dll共享段中一些需要注意的问题
  • 原文地址:https://www.cnblogs.com/Extreme/p/3060785.html
Copyright © 2011-2022 走看看