C#学习比较浅,发现很多知识自己不了解,不掌握的知识。记下来,一点一点学习吧。
1.向量点乘叉乘应用
1.1 {向量a-向量b = 由b指向a 的向量} {A 点-B点= B点指向A点的向量}
1.2 点乘:a·b=|a|·|b|cos<a,b> (结果是标量)
用法1:根据点乘计算两个向量的夹角。<a,b>= arccos(a·b / (|a|·|b|))
a向量在e向量方向上的投影(|a|cos θ),乘以|b|
用法2:根据点乘的正负值,得到夹角大小范围,判断相对方向
①a*b>0,(cos θ>0)则夹角范围(0,90),在同一方向上
②a*b=0, (cos θ=0)则向量a与b垂直
③a*b<0,(cos θ<0)则夹角范围(90,180),在相反方向上
用法3.根据点乘的大小,得到向量的投影长度,反应了向量的长度关系。如果点积越大,说明夹角越小。
1.3 叉乘:两个向量的叉积与这两个向量组成的坐标平面垂直(结果是一个向量)
2.委托,事件,Lambda表达式
2.1 委托 (delegate)
百度百科:委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
理解:public int age;public string name;等等 (int,string,float)
还有比如说 定义一个结构体:public Struct MyStruct(){ } 定义一个类:public class Test{ }
结构体MyStruct类型的变量:public MyStruct myStruct;类Test类型的变量:public Test test;
那么方法呢?(我们用delegate定义方法的类型) public public delegate void GreetingDelegate(string name);
2.2 Action<T>、Func<T>(https://www.cnblogs.com/zyqgold/archive/2011/01/02/1924005.html)
泛型Action<T>委托和Func<T>委托是系统定义的两个泛型委托。
2.3 事件(event)
2.4 Lambda表达式、Lambda表达式树(https://mp.csdn.net/postedit/83417564)
(1)源起.net的设计者发现在使用匿名方法时,仍旧有一些多余的字母或单词的编码工作,比如delegate关键字,于是进一步简化了匿名方法的写法。