C#入门详解笔记

Posted 尼古拉-卡什

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#入门详解笔记相关的知识,希望对你有一定的参考价值。

=============================Ch11=============================
实例化时初始化器
Form myForm=new Form()Text="MyForm",FormBorderStyle=FormBorderStyle.SizableToolWindow.ShowDialog();

string str="STRING"; 等效于 string str=new String("STRING");只是编译器隐藏起来了

匿名类型
var Person=newName="Mr.Okay",Age=33;
Person.GetType().Name=<>f_AnonymousType0^2


new操作符容易造成程序紧耦合,解决方式:依赖注入
new修饰符:将子类继承自父类的方法进行修饰,以示区分(隐藏)

十进制转二进制
uint x=uint.MaxValue;
string binStr=Convert.ToString(x,2).PadLeft(32,\'0\');
//PadLeft左对齐,不足32位补0

检查过程是否有溢出,系统默认unchecked
uint y=checked(x+1);

check

y=x+1;

sizeof() 对象在内存中占用的字节数

unsafe

int x=sizeof(Student);
//获取自定义结构体类型的内存占用,不用unsafe无法执行

指针->
unsafe

Student stu;
stu.ID=1;
stu.Score=99;
Student* pStu=&stu;
pStu->Score=100;//指针间接访问只能操作结构体类型,不能操作引用类型

struct Student

public int ID;
public int Score;

string.IsNullOrEmpty()

=============================Ch12=============================
隐式类型转换implicit
不丢失精度的转换
子类向父类的转换
装箱

显式类型转换explicit
可能丢失精度或发生错误
拆箱
使用Convert类
ToString方法与各类型的转换

Parse解析字符串
数据类型.Parse(str)
double.Parse(str) 如果目标内容无法转换成功,则报错
TryParse(str,out result)

自定义显式类型转换操作符
class Stone

public int Age;
public static explicit operator Monkey(Stone,stone)

Monkey m=new Monkey()
m.Age=stone.Age/500;
return m;


class Monkey

public int Age;

Class Program

static void Main(string[] args)

Stone stone=new Stone();
stone.Age=5000;
Monkey wukongSun=(Monkey)stone;
Console.WriteLine(wukong.Age);

As与Is
if(o is Teacher)

Teacher t=(Teacher)o;
t.Teach();

Teacher t=o as Teacher;
if(t!=null)

t.Teach();

条件操作符?:
可空类型
泛型 C#3.0以后新增
Nullable<int> x=null;可简化为int?x=null;
x=100;
Bool HasValue=x.HasValue
str=(x>=60)?"Pass":"Fail"

null合并操作符??
int?x=null;
inty=x??1;//如果x为空,则赋值为1

赋值操作符=
从右向左计算

 

感谢刘铁锰老师倾情奉献 视频在B站

以上是关于C#入门详解笔记的主要内容,如果未能解决你的问题,请参考以下文章

C#入门视频教程,C#语言入门详解,限时免费领取!

C#入门详解

C#入门经典(v6) 读书笔记 (第一部分 C#语言)

C#入门详解

C#入门详解(14)

C#入门详解