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#入门详解笔记的主要内容,如果未能解决你的问题,请参考以下文章