C语言C#基础系列第一篇

前言:
完全是本人在就学过程中著录之笔记,只不过分享一下被多恰巧开头学习.net编程的总人口能快速的学会C#语言

  1. 托管代码,非托管代码

(1) 凡是由.net生成的代码,需要CLR运行的代码都为托管代码

(2) 不由CLR进行维护的尽代码为非托管代码

  1. break和Continue的区别

 (1)举例说明:

            static void Main(string[] args)

        {

            for (int i = 0; i < 10; i++)

            {

                if (i == 2)

                {

                    //break;

                    continue;

                }

            }

        }

     注:在此可以动用调试的作用看一下布局

  1. 换成变量的做法

      int num1 = 5;

              int num2 = 10;

       (1)第一种植写法(建议利用这种极端)

              int temp = num1;

              num1 = num2;

              num2 = temp;   

       (2)第二种植写法

              num1 = num1 + num2;

          num2 = num1 – num2;

          num1 = num1 – num2;

       (3)第三种写法

              num1 = num1 | num2;

          num2 = num1 ^ num2;

          num1 = num1 ^ num2;

       (4)第四种植写法(只有根据堆栈的编译起被好尽)

              num1 = num2 + (num2 = num1) * 0;

       (5)第五种写法(使用这种写法的时必须使管一定量只变量都无克为0)

              num1 = num1 * num2;

          num2 = num1 / num2;

          num1 = num1 / num2;

       Console.WriteLine(“num1={0},num2={1}”, num1, num2);

  1. 措施(方法就是复用模块)

(1) 没有参数与返回值的办法

            语法:[public] void 方法的名字()

            {

                   //方法体

            }

            public static void Func()

        {

            Console.WriteLine(“我只要召开网站了”);

        }

    
(2)如果是Main方法调用该方式,现在一旦于法前增长static(标有static(静态)的措施只有会直接调用)

     (3)带有参数的不二法门

            语法:public static void 方法名(方法类型 参数的变量称)

            {

                   //方法体

            }

            public static void FuncReplace(int money)

        {

            if (money >= 1000)

            {

                Console.WriteLine(“可卜的网站”);

            }

            else if (money >= 500)

            {

                Console.WriteLine(“简单的网站”);

            }

            else

            {

                Console.WriteLine(“资金短缺”);

            }

        }

     (4)带有参数有返回值的计

            语法:[public] static 返回值类型 方法名(参数类型 参数)

            {

                   //

            }

            public static int GetNum(int num)

        {

            return num * 2;

        }

            执行办法

            int res= GetNum(3);

        Console.WriteLine(res);

     (5)实现Max方法与Min方法

            class Program

            {

                   static void Main(string[] args)

                   {

                          int num1 = 12;

                          int num2 = 34;

                          int max = Max(num1, num2);

                          int min = Min(num1, num2);

                          Console.WriteLine(“较充分之数字是:{0}”,max);

                          Console.WriteLine(“较小的数字是:{0}”,min);

                          Console.ReadKey();

                   }

                   public static int Max(int n1, int n2)

                   {

                          /*

                          if (n1 > n2)

                          {

                                 return n1;

                          }

                          else

                          {

                                 return n2;

                          }

                           */

                          int num = 0;

                          if (n1 > n2)

                          {

                                 num = n1;

                          }

                          else

                          {

                                 num = n2;

                          }

                          return num;

                   }

                   public static int Min(int n1, int n2)

                   {

                          return n1 > n2 ? n2 : n1;  //三元表达式

                   }

            }    

     (6)求Min和max之间的奇数的以及

            class Program

            {

                   static void Main(string[] args)

                   {

                          int res = SumOdd(3, 7);

                          Console.WriteLine(res);

                          Console.ReadKey();

                   }

                   public static int SumOdd(int min, int max)

                   {

                          int res = 0;

                          for (int i= min; i <= max; i++)

                          {

                                 if (i % 2 != 0)

                                 {

                                        res += i;

                                 }

                          }

                          return res;

                   }

            }

     (7)求最好要命累

            class Program

            {

                   static void Main(string[] args)

                   {

                          int[] nums = { 12, 34, 54, 65, 76,454 };

                          int res = GetNUum(nums);

                          Console.WriteLine(res);

                          Console.ReadKey();

                   }

                   public static int GetNUum(int[] nums)

                   {

                          int max = 0;

                          for (int i = 0; i < nums.Length; i++)

                          {

                                 if (nums[i] > max)

                                 {

                                        max = nums[i];

                                 }

                          }

                          return max;

                          //return nums.Max();

                   }

            }

     (8)写三单章程,分别成功

           
1、不带来参数,完成自由整数的输入,如果出现谬误提示,并连续输入,返回整数

                   int InputNum_1()

            2、带一个参数,完成0到该数范围的整数输入

                   int InPutNum_2(int max)

            3、带点儿独参数,完成就点儿独数字里的平头输入

                   int InPutNum_3(int min, int max)

      class Program
        {
            static void Main(string[] args)
            {
                Console.Write("请输入一个数字:");
                int num = GetInputNum(9,17);
                Console.WriteLine(num * 2);
                Console.ReadKey();
            }
            /// <summary>
            /// 完成任意int范围的数字的输入并返回
            /// </summary>
            /// <returns></returns>
            public static int GetInputNum()
            {
                return GetInputNum(int.MinValue, int.MaxValue);
            }
            /// <summary>
            /// 完成int类型数据的输入,并返回,要求输入的数字在0到给定的数字之间
            /// </summary>
            /// <param name="max">给定的数字的上限</param>
            /// <returns></returns>
            public static int GetInputNum(int max)
            {
                return GetInputNum(0, max);
            }
            /// <summary>
            /// 完成int数字的输入,要求在给定范围之间
            /// </summary>
            /// <param name="min">给定范围的下线</param>
            /// <param name="max">给定范围的上线</param>
            /// <returns></returns>
            public static int GetInputNum(int min,int max)
            {
                string str = Console.ReadLine();
                int num;
                while (true)
                {
                    try
                    {
                        num = Convert.ToInt32(str);
                        if (num > min && num < max)
                        {
                            break;
                        }
                        Console.Write("输入数字不再{0}到{1}之间,请重新输入", min,max);
                        str = Console.ReadLine();
                    }
                    catch
                    {
                        Console.Write("输入有误,请重新输入");
                        str = Console.ReadLine();
                    }
                }
                return num;
            }
        }

  

  1. 团结加加代码段

(1) 如何创造和谐之代码段

    
1)工具->代码段管理器->切换至C#->复制路径在自之微机中之所以->然后可以如法炮制本机自带的代码段修改成一个文书放到桌面上

(2)如何添加自己定义之代码段

     2)打开原来的界面->导入->放在自己的文件下->完成

  1. 办法的重载

(1)
重载就是将同种类或者就接近作用的异措施,统一成同一个办法名,方便程序员进行调用

(2)方法重载本质上是殊之办法,只不过方法名相同,那么由方调用时提供的参数有编译器进行机动的论断

(3)构成重载的尺度

     1)去丢方法名前的富有情节

     2)去掉方法体

     3)去丢方法参数的参数称作,留下类型名

     4)比较,可以重合的未能够做重载

  1. 枚举就是一个个用出去的多少

(1) 语法:

            [public] enum 枚举名

            {

                   //枚举成员

            }

 (2)如何定义枚举

 (3)枚举是一个品类(*)

 (4)如何声明枚举变量

 (5)如何为枚举变量赋值与运

         public enum Direction

            {

                   东,

                   南,

                   西,

                   北

            }

            class Program

            {

                   static void Main(string[] args)

                   {

                          Direction dir = Direction.北;

                          Console.WriteLine((Direction)3);

                          Console.ReadKey();

                   }

            }

  1. 结构

(1) 语法:

            [public] struct 结构名

            {

                   //结构成员

            }

            结构成员可以是”字段”,”方法”,”构造函数”

     (2)结构可以定义方法

     (3)结构字段如果欲外表看必须补偿加public

     (4)不允显示的定义无参构造方法

     (5)定义构造方法必须也各个一个字段赋值

     (6)提供有参构造方法后,无参构造方法依旧是

     (7)声明结构变量的时段,可以无使用构造方法

            1)如果未应用构造方法,那么只能调用已经显示赋值的字段

            2)结构的构造方法就是为吃许段赋初值的

     (8)结构的积极分子不容许发生新起值,除非是static或者consit修饰的

     (9)结构得以继续自组织

     (10)一般情形不欲面向对象特征的施用结构

     (11)一般情况封装少量字段的当儿,使用结构

  1. Winform应用程序

(1) 如何创造

     1)新建项目

2)拖控件(修改属性)

     3)添加事件

            因为执行某动作要接触的措施

 (2)Winform

     1)改变界面(一般还是透过)

     2)业务逻辑

 (3)关于窗体的职位(控制窗体的职位)

     1)设定窗体的StartPosition属性

 (4)鼠标移动事件

     在MouseMove事件下面写副如下代码:Text=”X=”+e.X+”,Y=”+e.Y;

 (5)窗体滚动

      

   public partial class Form1 : Form

            {

                   public Form1()

                   {

                          InitializeComponent();

                          StartPosition = FormStartPosition.Manual;

                          Location = new Point(0, 100);

                   }



                   int step = 5;

                   int dis = 1;

                   private void timer1_Tick(object sender, EventArgs e)

                   {

                          //循环实现

                          //if (Location.X > 1366)

                          //{

                          //    Location = new Point(0 - Size.Width, Location.Y);

                          //}

                          //Location = new Point(Location.X + 5, Location.Y);

                          //过去回来

                          //if (Location.X > 1366 - Size.Width || Location.X < 0)

                          //{

                          //    step = -step;

                          //}

                          //Location = new Point(Location.X + step, Location.Y);

                          //两边快,中间慢

                          //判断我的窗体距离边距多大

                          int left = Location.X;

                          int right = 1366 - Location.X - Size.Width;

                          if (Location.X > 1366 - Size.Width || Location.X < 0)

                          {

                                 step = -step;  

                          }

                          if (step > 0)

                          {

                                 //右飘

                                 dis = right / 10 == 0 ? 1 : right / 10;

                          }

                          else

                          {

                                 //左飘

                                 dis = left / 10 == 0 ? 1 : left / 10;

                          }

                          Location = new Point(Location.X + step*dis, Location.Y);

                   }

            }