在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);
}
這些約束條件可以組合使用,以根據需要限制泛型參數的類型。在實際應用中,約束條件可以幫助確保泛型代碼的類型安全和正確性,同時提高代碼的可重用性和靈活性。