C#应该知道的简单的知识点
1.本地变量
一看这个标题你可能会一愣,这是个什么东东。看个小例子:
static void main()
{
int a=10;
MyClass mc=new MyClass();
}
呵呵,这里的a与mc就是本地变量,它和字段一样,也保存数据。字段通常保存和对象状态有关的数据,而创建本地变量经常用于保存本地或临时数据。呵呵,简单吧,但是它和实例字段有何区别:
实例字段
本地变量
生存期 从实例创建开始,直到实例不再被访问
从它在块中被声明开始,到块执行结束
隐式初始化 初始化成该类的默认值 没有隐式初始化。如果变量在使用之前没有被赋值,编译器将报错
存储区域 由于实例字段是类的成员,所有的字段都存储在堆里,无论它是指类型还是引用类型 值类型:存储在栈里
引用类型:引用存储在栈里,数据存放在堆里
2.var 关键字
我们知道var可以自动推断变量的类型,如上代码,我们可以发现在声明开始部分提供类型名时,编译器能从初始化语句的右边推断出来它的类型,所以,在声明的开始部分包括显示的类型名多余的。
为了避免这种多余,可以在声明的开始部分的显示类型名的位置使用新的关键字var。上面代码可以改成:
static void main()
{
var a=10;
var mc=new MyClass();
}
3.值参数
使用值参数,通过将实参的值复制到形参的方式把数据传递给方法。方法被调用时,系统做如下操作:
在栈中为形参分配空间
将实参的值复制给形参
4.引用参数(ref)
不会为形参在栈上分配内存
实际情况是,形参的参数名将作为实参变量的别名,指向相同的内存位置
实参必须是变量,在用作实参前必须被赋值。如果是引用类型变量,可以赋值一个引用或者null
5.输出参数(out)
在方法内部,输出参数在能够使用之前必须被赋值。这就意味着参数的初始值是不起作用的,所以没有必要在方法调用前为参数赋值。
在方法返回之前,方法内部任何路径都必须为所有输出参数进行一次赋值。
如下代码:
public void Add(out int outValue) { int var1=outValue+2; }上述代码输出参数在方法赋值之前被读取将会报错。
6.属性(set,get)
属性是一个函数成员
它不为数据的存储分配内存
它可以执行代码
set访问器拥有一个单独的隐式的值参,名称为Value,与属性的类型相同且拥有一个返回类型void
get访问器没有参数,拥有一个与属性类型相同的返回类型。
7.对象初始化语句
我们都知道创建一个对象是由new 后面跟着一个类构造函数及其参数列表组成。
对象初始化语句扩展了创建语法,在表达式的尾部放置了一组成员初始化的语句。允许我们创建新的对象实例时,设置字段和属性的值。
该语法有两种形式:一种形式是包括构造函数的参数列表,另一种是不包括。注意第一种形式可以省略圆括号。
new TypeName {FieldOrProp=InitExpr,FieldOrProp=InitExpr,…}
new TypeName {FieldOrProp=InitExpr,FieldOrProp=InitExpr,…}
示例如下:
public static void main()
{
Point p1=new Point();
Point p2=new Point{X=4,Y=5,Z=6};
Point p3=new Point(9){X=7,Y=8};
}
public class Point
{
public int X=1;
public int Y=2;
public int Z=3;
public Point(int z) { Z=z; }
}
8.this关键字
this关键字在类中使用,是对当前实例的引用。它只能用在下列类成员的代码中
实例构造函数
实例方法
属性和索引器的实例访问权
由于静态成员不是实例的一部分,所以不能在任何静态函数成员的代码中使用this关键字。更适当的说,this用于下列目的:
用于区分类的成员和本地变量或参数
做为调用方法的实参

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

WebStorm Mac 버전
유용한 JavaScript 개발 도구

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
