当前位置:首页 > Windows程序 > 正文

C#初级知识点整理及VS的简单使用

2021-03-28 Windows程序

C#预处理器指令
#define #undef 声明一个不需赋值的变量
注意的一点事它必须放到using 上面,如

#define TEST using System.xxx; public class Task { public Task() { } }

#region #endregion
这是一组用来帮助管理代码布局的指令

#if #else #elif #endif
if else 没什么好说的。不过这个一般要跟#define搭配使用

#warn #error
输出警告或错误

#if DEBUG

#endif

这个比较有用,指定了一个只在调试的时候才执行的代码块,发布的时候会被自动删除

当然 这些功能都可以用一组快捷键来实现:  CTRL + K ,CTRL + S

选中一段代码然后使用这组快捷键就可以

ref参数

当把一个参数传给一个方法的时候,如果这个参数是传送的值,那么无论在方法中它被如何更改都不会影响方法外的原值;但如果加上ref的话,这个值就会被作为引用传递

static void Reset(ref int b) { b = 1; } static void Main(string[] args) { int n = 0; Reset(ref n); }

注意的是,,定义和使用方法的时候,形参和实参前都要加ref

可选参数

有的时候某些参数是可选的,并且有默认值。(有点像重载)

static void Reset(int b,int c = 2,int d=3) { Console.WriteLine("n:{0}", b+c+d); } static void Main(string[] args) { Reset(1); }

但要注意的是可选参数必须放到最后定义。下面这样是不对的

static void Reset(int c = 2,int d=3,int b) { Console.WriteLine("n:{0}", b+c+d); }

调用的时候 是按顺序赋值。

Reset(119);//给b赋值 Reset(119,5);//给b,c赋值 Reset(119,5,7);//给b,c,d赋值

但如果不想按顺序赋值,或者有些参数不想赋值则可以用以下方式调用

Reset(110,d:5);//给b,d赋值

属性的概念

public class Person { private string name; public string Name { set { name = value; } get { return name; } } }

如果不添加set访问器的话,就成了只读属性。(相应的也有只写属性)

public class Person { private string name; public string Name { get { return name; } } }

这还有种简单的写法

public class Person { public string Name{set;get;} }

但这种自动实现的属性必须有两个访问器。否则会出错,如下面这样

public class Person { public string Name{get;} }

如果想设置只读的话,可以通过改变访问权限的方式实现:

public class Person { public string Name { private set; get; } }

 继承

①在C#中 子类调用父类要用base,

public class Student:Person { public override void ShowName() { base.ShowName(); } }

这就如同Java中的super一样。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/69083.html