标签:nbsp 多个 技术 return 举例 div 类型 void system
【学习资料】
> 在线文档
官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/
菜鸟教程(高级教程):https://www.runoob.com/csharp/csharp-tutorial.html
> 视频教程
腾讯学院、Siki学院
> 书籍
《C#图解教程》(第17章):https://www.cnblogs.com/moonache/p/7687551.html
【学习内容】
> 菜鸟教程:高级教程部分(泛型)
> 《C#图解教程》(第17章)
【笔记】
// T的类型在创建对象时确定 public class MyList<T> { private int size = 10; public T[] values; public MyList() { values = new T[size]; } } void Start() { MyList<int> myList_int = new MyList<int>(); // T 为 int MyList<string> myList_string = new MyList<string>(); // T 为 string myList_int.values[0] = 1; myList_string.values[0] = "Alice"; }
// 交换a和b public void SwapValue<T>(ref T a, ref T b) { T temp = a; a = b; b = temp; } void Start() { int i1 = 1, i2 = 2; string s1 = "Alice", s2 = "Bob"; SwapValue(ref i1, ref i2); // T 为 int SwapValue(ref s1, ref s2); // T 为 string Debug.Log(i1); // 输出:2 Debug.Log(s1); // 输出:Bob }
// 泛型委托 delegate T NumberChanger<T>(T a, T b); public int AddNum(int a, int b) { return a + b; } public string AddString(string a, string b) { return a + b; } void Start() { // T 为 int NumberChanger<int> numberChanger_int = new NumberChanger<int>(AddNum); // T 为 string NumberChanger<string> numberChanger_string = new NumberChanger<string>(AddString); }
// 多泛型T委托 delegate T3 NumberChanger<T1, T2, T3>(T1 a, T2 b); // int 与 float 相加,返回string public string AddNumToString(int a, float b) { return (a + b).ToString(); } void Start() { // 创建泛型变量 NumberChanger<int, float, string> numberChanger = new NumberChanger<int, float, string>(AddNumToString); }
public class Major // 职业 { }; public class Teacher : Major // 教师 { } public class Person<T1, T2, T3> where T1 : class // T1 必须是个类 类型 where T2 : struct // T2 必须是个结构 类型 where T3 : Major // T3 必须是基类为Major的类 { T1 value1; T2 value2; T3 value3; } void Start() { // 报错:T1和T3不满足约束条件 //Person<int, int, int> person1 = new Person<int, int, int>(); // 正确: // string 类型为 class System.String // int 类型为 struct System.Int32 // Teacher 类型为 class Major Person<string, int, Teacher> person2 = new Person<string, int, Teacher>(); }
【Unity|C#】基础篇(10)——泛型(Generic)/ 泛型约束条件(where)
标签:nbsp 多个 技术 return 举例 div 类型 void system
原文地址:https://www.cnblogs.com/shahdza/p/12244245.html