我是一个菜鸟,我只是在努力,2021正视自己,面对2021!

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

                   }

            }

  

posted @ 2012-09-30 12:21  Kencery  阅读(2203)  评论(3编辑  收藏  举报
友情链接:初心商城