|
本帖最后由 陽陽陽 于 2023-5-22 03:30 编辑
搞了好几天,才弄明白
杂类:
1:下断点:
点一下vs2019最左边灰 /// 色的那一行
出现一个红点即可
F10 单步跳过
F11单步执行
简单理解就是F10不会跳到其它子程序,F11是一步一步走。
2:UTC Time:
DateTime.UtcNow
获取UTC时间,本地时间可能会有时差。
正文:
1:Action类型
可以有参数,不能带返回值。
例子:
Action<string, int> testAct = tesActFu;
testAct.Invoke("qqq", 22);
public void tesActFu(string t1, int t2)
{
Console.WriteLine(t1);
Console.WriteLine(t2);
}
2:Func类型
可以有参数和返回值,
Func<返回值,参数1,参数2,参数3……> fun2 = new Func<返回值,参数1,参数2,参数3……>(程序名);
可以理解成指针,可以把它传递成参数:
class WarpFactroy
{
public Box WarpPoroduct(Func<Product> getProduct)
{
Box box = new Box();
Product product = getProduct.Invoke();
box.Product = product;
return box;
}
}
getProduct这个指针(委托)指向的是一个返回值类型为Product的子程序,然后可以根据需要传递不同的子程序
调用这个模板方法的时候可以这样:
Func<Product> fun2 = new Func<Product>(TheproductFactory.MakeToyCar);
Box box2 = ThewarpFactroy.WarpPoroduct(fun2);
先创建了一个指针(委托),然后把它传进那个子程序,在子程序内部调用
3:public delegate double Calc(double x, double y);
要写在namespace下
和Func当参数(传递成参数)差不多(暂时还没能理解这个的具体用法和便捷之处):
Calculator ACalculator = new Calculator();
Calc calc1 = new Calc(ACalculator.Add);
class Calculator
{
public double Add(double x, double y)
{
return x + y;
}
public double Sub(double x, double y)
{
return x - y;
}
}
4:好莱坞方法
可以调用,也可以不调用。
如果满足某些条件,就调用(例子:充 值时间为两年半,log记录一下)
5:委托滥用
可读性下降
灾难性:委托回调,异步调用,多线程放在一起
内存泄露
6:多播委托
大脑.exe 已停止运行。
明天再学。
大佬帮忙指点下错误
|
|