基本类型和string引用传递加ref
list以及class加不加都是引用传递
重载
泛型
可变参数 params int[] sz
默认参数 命名参数
类的实例 是引用,那个对象的地址
类成员的访问修饰符public、 private、 protected、 internal、 protected internal。默认为private
属性 get{return _Name;} set{_Name=value;} 命名下划线开头 value此处是关键字。简写成
public string Name{get;set;}
构造函数中调用另一个构造函数 )后加:this()
匿名对象:var user=new{name="zzz",age=11}; user.age;
静态成员 static 访问直接 类名.xxx
静态构造函数只在创建第一个对象时调用
先运行基类的构造函数
多态不能用于字段。可以属性、方法
virtual override 传进去哪一层就override哪一层 override包含了virtual 还有个关键字new
加sealed关键字无法被覆写
class前加abstract为抽象类 无法new
类型转换时 is as
接口只能放属性、方法
enum枚举 位开关
操作符重载 public static bool operator ==(两个参数){}还要同时重写!= return ! ==即可
类型转换 explicit显式 implicit隐式
装箱、拆箱、弱引用*
委托 delegate 把函数传入函数
delegate bool fc(int num);
static fc greaterthan10 = delegate(int n){return n>10;};
lambda 简化委托 直接传入参数 (n)=>{return n>10;}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace cs000
{
class Program
{
static int GetFilesNum(string path)
{
int count = 0;
var files = Directory.GetFiles(path);
count += files.Length;
var dirs = Directory.GetDirectories(path);
foreach (var dir in dirs)
{
count += GetFilesNum(dir);
}
return count;
}
static void Main(string[] args)
{
Console.WriteLine(GetFilesNum("C:\\Users\\97090\\OneDrive"));
}
}
}