C# 基础(更新中)

网友投稿 255 2022-08-05

C# 基础(更新中)

Data Structure

There're two types of variables in C#, reference type and value type.

Enum:

enum Color{

Red=0,

Green=1

}

//equals to

enum Color{

Red,//start from 0 as default

Green

}

int to enum:(Color)val

Arrays and Collections

Array

declare array:

new int[10]

new int[10]{xx,xx.....};

new int[]{aa,aa};

Collection

List theList=new List();//can use value type here, not only reference type

theList.Count;//size of the list

class

when calling same name class with different namespace, it will use class of same namespace first, then System namespace.

fields and properties

can't use var to declare fields like var count=0,must use int count=0

const is static, so we can't use them together like public static const int count=0

rules of naming fields and property: first letter with uppercase is public, first letter with lowercase is private.

Auto-implemented property: remove their private fields.

initiate with default: public MyClass val {get;set;} = new MyClass();

anonymous type

for the cases:

only use in one function and not need for other functions

only exists for only short time, and will be stored to other places

var val=new {name='Alex', age=12};

Extensions

class TheExtensionClass{

public int toInt(this string value){

return int.Parse(value);

}

}

//so that the function can be called on string

str.toInt();

function

out, in and ref

if use out/in/ref for value type variable, then it will convert to reference type.

must initiate out variable in the function before use it.

default parameter and named parameter

Default parameter

must declared after non-default parameter

if we don't want to give value to the first default parameter but want to give the second default parameter, we can't do this without named parameter

Named parameter:

can call the function and break the sequence of parameters, especially for default parameter

special function:lambda

for the cases:

short function

var res=theList.Find(MyFunc);

boolean MyFunc(Student aStudent){

return studentName="abc";

}

theList.Find(student=>{

return studentName="abc";

});

theList.Find(student=> studentName="abc");

Event and asynchronous programming

Event

for the cases:

when executing monitor function, it will automatically execute the monitored function

declare Action variable in class A:Action action

binding the action variable to f2 (monitored function) of class B:action+=f2

trigger the event: in f3(monitor function) call the action with action();

### asynchronous programming

like event

RequestSupport(CallBackFunc)

Exception and log

Exception

try{

}catch{

}

try{

}catch(FormatException){

}

try{

}catch(FormatException e){

print e;

print e.Message;

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用Microsoft Roslyn提取C#和VB.NET源代码中的字符串常量(如何在手机上使用microsoft)
下一篇:【asp.net core 系列】2 控制器与路由的恩怨情仇(aspnet是前端还是后端)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~