C#基础系列第一篇
前言: 完全是我在学习过程中记录的笔记,只不过分享一下让很多刚开始学习.net编程的人能够很快的学会C#语言
- 托管代码,非托管代码
(1) 凡是由.net生成的代码,需要CLR运行的代码均为托管代码
(2) 不由CLR进行维护的执行代码为非托管代码
- break和Continue的区别
(1)举例说明:
static void Main(string[] args)
{
for (int i = 0; i < 10; i++)
{
if (i == 2)
{
//break;
continue;
}
}
}
注:在这里可以使用调试的功能看一下结构
- 交换变量的做法
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) 没有参数和返回值的方法
语法:[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)工具->代码段管理器->切换到C#->复制路径在我的电脑中用->然后可以仿照本机自带的代码段修改成一个文件放到桌面上
(2)如何添加自己定义的代码段
2)打开原来的界面->导入->放在自己的文件下->完成
- 方法的重载
(1) 重载就是将同一类型或者完成类似功能的不同方法,统一成同一个方法名,方便程序员进行调用
(2)方法重载本质上是不同的方法,只不过方法名相同,那么由方法调用时提供的参数有编译器进行自动的判断
(3)构成重载的条件
1)去掉方法名前的所有内容
2)去掉方法体
3)去掉方法参数的参数名,留下类型名
4)比较,可以重合的不能构成重载
- 枚举就是一个个拿出来的数据
(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) 语法:
[public] struct 结构名
{
//结构成员
}
结构成员可以是"字段","方法","构造函数"
(2)结构可以定义方法
(3)结构字段如果需要外部访问必须添加public
(4)不允许显示的定义无参构造方法
(5)定义构造方法必须为每一个字段赋值
(6)提供有参构造方法后,无参构造方法依旧存在
(7)声明结构变量的时候,可以不使用构造方法
1)如果不使用构造方法,那么只能调用已经显示赋值的字段
2)结构的构造方法就是为了给字段赋初值的
(8)结构的成员不允许有初始值,除非是static或者consit修饰的
(9)结构可以继承自结构
(10)一般情况不需要面向对象特征的使用结构
(11)一般情况封装少量字段的时候,使用结构
- 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); } }
初心商城:初心商城
作者:韩迎龙(Kencery) MVC/.NET群:159227188如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏一杯咖啡,本页版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利