C#基础学习随笔记

Posted fighting18

tags:

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

C#:
命名空间声明、一个class、Class方法、Class属性、Main方法
Console.WriteLine();WriteLine是一个定义定义在System命名空间中Console类的一个方法。作用是在屏幕上输出括号中的内容
Console.ReadLine();//输入
命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式。在一个命名空间中声明的类与另一个命名空间中声明的相同
的类的名称不冲突
using关键字用于在程序中包含System命名空间。一个程序一般有多个using语句
using关键字表明程序使用的是给定命名空间中的名称

C#大小写敏感;与Java不同,文件名可以不同于类的名称
变量分为三种类型:值类型,引用类型,指针类型
1.引用类型指的是一个内存地址。内置的引用类型有object(对象类型)、dynamic、string
对象类型:值-》对象 装箱;对象-》转值 拆箱
object obj=100;装箱
@ 取消\\在字符中的转义作用;将字符串按照原格式输出

动态类型:可以存储任何类型的值在动态数据类型中
dynamic 变量名=value;
对象类型变量的类型检查是在编译时发生的,动态类型的类型检查是在运行时发生的

字符串类型的值可以通过两种形式进行分配 引号和@
String str="aaaa";
@"runoob.com";
C# string字符串前面可以加@将转义字符(\\)当作普通字符
2.值类型变量可以直接分配给一个值

类型转换:
隐式类型转换:小到大
显示类型转换:即强制类型
//显式
double d=478.3;
int i =(int)d;
C#里提供了内置的类型转换

常量:使用const关键字来定义

运算符:
&返回变量地址
as强制转换,即使转换失败也不会抛出异常

internal:允许一个类将成员变量和成员函数暴露给当前程序中的其他函数和对象,
带有该访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类或方法访问

参数传递:
1.值传递
当调用一个方法时,会为每个形参创建一个新的存储位置,因此实参和形参使用的是不同的内存中的值。
所以当形参的值发生改变时,不会影响实参的值,从而保证了实参的数据安全
2.引用传递参数
是对变量的内存位置的引用。引用参数与实际参数具有相同的内存位置.所以会改变实参的值
    使用关键字ref声明引用参数
3.按输出传递参数

NUllable
可空类型(Nullable)可以表示其基础值正常范围的值,也可表示null值
例如 Nullable<bool> 可以为true、false 或者null
?单问号表示的是可空(Nullable)类型的
在处理数据库和其他为赋值的元素数据类型时,将null赋值给数值类型或者布尔类型特别有用
例如 int? num=null;

??双问号 可用于判断一个变量在为null时返回一个指定的值
如果第一个操作数为null,则运算符返回第二个操作数的值,否则返回第一个操作数的值
例如 double? num=null; 
     double num3=num??2.2// 2.2


数组:
在使用数组作为形参时,使用params关键字
Array类 参考微软文档

String
参考MSDN库

声明枚举enum
enum<enum_name>{enumeration list};
枚举列表中每个符号代表一个整数值。默认情况下,第一个枚举符号的值是0;

类:
默认访问修饰符是internal,成员的默认访问标识符是private

析构函数 ~ 无返回值,不带任何参数
析构函数用于在结束程序之前释放资源。析构函数不能继承和重载

多态性 就是同一个接口,使用不同的实例而执行不同的操作
动态多态性是抽象方类和虚方法实现的
抽象类:
当一个类被声明为sealed时,不能被继承,抽象类不能声明为sealed
虚方法:virtual
可以在不同的继承类中有不同的实现;对虚方法的调用是在运行时发生的

运算符重载
operator运算符
  
接口声明默认是public
实现接口或继承类都用冒号 : 

预处理指令:指编译器在实际编译开始之前对信息进行预处理

文件部分的知识 看视频

反射指程序可以访问、检测和修改它本身状态或行为的一种能力

以上是关于C#基础学习随笔记的主要内容,如果未能解决你的问题,请参考以下文章

linux基础学习随笔根本没有排序哈

学习笔记c#基础学习

C# 学习笔记-- C# 的基础语法

C#基础及CLR基础学习笔记

怎么用在掌握java的基础上再学习C#

总结整理 -- 爬虫技术(C#版)