以下是 C# 泛型的基本概念和用法:
1. 泛型类(Generic Class):
public class GenericClass<T>
{
private T genericField;
public GenericClass(T value)
{
genericField = value;
}
public T GetValue()
{
return genericField;
}
}
在上述例子中,GenericClass<T> 是一个泛型类,T 是类型参数。通过使用 T,你可以创建一个可以用于不同类型的字段和方法的通用类。
2. 泛型方法(Generic Method):
public T GenericMethod<T>(T value)
{
// 执行一些操作
return value;
}
在上述例子中,GenericMethod<T> 是一个泛型方法,可以接受不同类型的参数。
3. 泛型接口(Generic Interface):
public interface IGenericInterface<T>
{
T GetResult();
}
泛型接口可以用于定义具有通用性的接口。
4. 泛型委托(Generic Delegate):
public delegate void GenericDelegate<T>(T arg);
泛型委托可以用于定义具有通用性的委托。
5. 使用泛型集合:
C# 中的集合类通常是泛型的,例如 List<T>、Dictionary<TKey, TValue> 等。
List<int> intList = new List<int> { 1, 2, 3, 4, 5 };
Dictionary<string, int> keyValuePairs = new Dictionary<string, int>
{
{ "One", 1 },
{ "Two", 2 },
{ "Three", 3 }
};
泛型提供了更好的类型安全性,减少了装箱和拆箱的需要,并促进了代码的重用。
使用示例:
class Program
{
static void Main()
{
// 使用泛型类
GenericClass<int> intGenericClass = new GenericClass<int>(42);
int result = intGenericClass.GetValue();
Console.WriteLine(result);
// 使用泛型方法
string resultString = GenericMethod("Hello, Generic!");
Console.WriteLine(resultString);
// 使用泛型接口
GenericInterfaceImplementation<int> implementation = new GenericInterfaceImplementation<int>(10);
int interfaceResult = implementation.GetResult();
Console.WriteLine(interfaceResult);
}
static T GenericMethod<T>(T value)
{
// 执行一些操作
return value;
}
}
public class GenericInterfaceImplementation<T> : IGenericInterface<T>
{
private T result;
public GenericInterfaceImplementation(T value)
{
result = value;
}
public T GetResult()
{
return result;
}
}
这些示例展示了如何使用泛型类、方法、接口和集合,以及如何创建泛型委托。泛型是C#中强大而灵活的功能,能够提高代码的可读性和可维护性。
转载请注明出处:http://www.zyzy.cn/article/detail/14775/C#