在C#中,约束条件通常用于泛型类、接口和方法中,以限制泛型参数的类型
public class MyClass<T> where T : IMyInterface
{
// ...
}
public class MyClass<T> where T : new()
{
public T CreateInstance()
{
return new T();
}
}
public class MyClass<T> where T : class
{
// ...
}
public class MyClass<T> where T : struct
{
// ...
}
==
和!=
)。这通常用于确保泛型类型可以进行相等性比较。public class MyClass<T> where T : IEquatable<T>
{
public bool AreEqual(T a, T b)
{
return a.Equals(b);
}
}
public interface IMyInterface<out T>
{
T GetValue();
}
public interface IMyInterface<in T>
{
void SetValue(T value);
}
这些约束条件可以组合使用,以根据需要限制泛型参数的类型。在实际应用中,约束条件可以帮助确保泛型代码的类型安全和正确性,同时提高代码的可重用性和灵活性。