C#基础类别第一篇

序言:
完全是本人在攻读进度中记录的笔记,只然则分享一下让广大刚伊始学习.net编程的人能够一点也不慢的学会C#语言

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

(一) 凡是由.net生成的代码,须求CLENVISION运转的代码均为托管代码

(二) 不由CLBMWX五进行维护的施行代码为非托管代码

  1. break和Continue的区别

 (一)举例表达:

            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;   

       (二)第三种写法

              num1 = num1 + num2;

          num2 = num1 – num2;

          num1 = num1 – num2;

       (三)第二种写法

              num1 = num1 | num2;

          num2 = num1 ^ num2;

          num1 = num1 ^ num2;

       (肆)第五种写法(唯有依照堆栈的编写翻译起中能够执行)

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

       (5)第4种写法(使用那种写法的时候必供给确定保证八个变量都不能够为0)

              num1 = num1 * num2;

          num2 = num1 / num2;

          num1 = num1 / num2;

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

  1. 方法(方法正是复用模块)

(一) 没有参数和再次来到值的点子

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

            {

                   //方法体

            }

            public static void Func()

        {

            Console.WriteLine(“笔者要做网址了”);

        }

    
(二)假若是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(“资金缺乏”);

            }

        }

     (四)带有参数具有重返值的措施

            语法:[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 > n贰 ? n二 : n一;  //长富表明式

                   }

            }    

     (陆)求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;

                   }

            }

     (柒)求最大数

            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)写八个点子,分别成功

           
一、不带参数,实现自由整数的输入,假诺出现错误提醒,并一连输入,重临整数

                   int InputNum_1()

            二、带一个参数,完毕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. 祥和添加代码段

(一) 如何创设本人的代码段

    
一)工具->代码段管理器->切换来C#->复制路径在自身的微型总结机中用->然后能够依样葫芦本机自带的代码段修改成四个文本放到桌面上

(贰)怎么着添加本身定义的代码段

     二)打开原来的界面->导入->放在本人的文书下->实现

  1. 艺术的重载

(一)
重载就是将同1类型恐怕完毕接近功能的不一样格局,统一成同3个措施名,方便程序员实行调用

(2)方法重载本质上是见仁见智的点子,只可是方法名相同,那么由艺术调用时提供的参数有编写翻译器进行自动的判断

(三)构成重载的标准

     一)去掉方法名前的全数情节

     二)去掉方法体

     三)去掉方法参数的参数名,留下类型名

     四)相比,能够重合的不可能整合重载

  1. 枚举正是三个个拿出去的多少

(1) 语法:

            [public] enum 枚举名

            {

                   //枚举成员

            }

 (二)怎样定义枚举

 (三)枚举是1个种类(*)

 (四)怎么着证明枚举变量

 (5)怎么样为枚举变量赋值与应用

         public enum Direction

            {

                   东,

                   南,

                   西,

                   北

            }

            class Program

            {

                   static void Main(string[] args)

                   {

                          Direction dir = Direction.北;

                          Console.WriteLine((Direction)3);

                          Console.ReadKey();

                   }

            }

  1. 结构

(1) 语法:

            [public] struct 结构名

            {

                   //结构成员

            }

            结构成员能够是”字段”,”方法”,”构造函数”

     (二)结构能够定义方法

     (三)结构字段尽管急需外部访问必须添加public

     (4)分化意彰显的定义无参构造方法

     (5)定义构造方法必须为每1个字段赋值

     (6)提供有参构造方法后,无参构造方法如故存在

     (七)注脚结构变量的时候,能够不选取构造方法

            一)若是不采纳构造方法,那么只好调用已经呈现赋值的字段

            二)结构的构造方法就是为了给字段赋初值的

     (捌)结构的成员不允许有开首值,除非是static可能consit修饰的

     (九)结构得以继承自己组建织

     (拾)1般景况不须要面向对象特征的运用结构

     (1壹)一般处境封装少量字段的时候,使用结构

  1. Winform应用程序

(壹) 怎么样创制

     一)新建项目

2)拖控件(修改属性)

     3)添加事件

            因为实施某些动作而接触的章程

 (2)Winform

     1)改变界面(壹般都以透过)

     2)业务逻辑

 (三)关于窗体的岗位(控制窗体的岗位)

     1)设定窗体的StartPosition属性

 (四)鼠标移动事件

     在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);

                   }

            }