ジェネリッククラスの定義VB.NET版
class MyGenericClass1<T> where T : struct {
// 制約:Tは構造体
}
class MyGenericClass2<T> where T : class {
// 制約:Tはクラス
}
class MyGenericClass3<T> where T : new() {
// 制約:Tはインスタンス化可能
}
class MyGenericClass4<T> where T : MyOtherClass {
// 制約:TはMyOtherClassクラスを継承
}
class MyGenericClass5<T> where T : IMyInterface {
// 制約:TはIMyInterfaceインターフェイスを実装
}
class MyGenericClass6<T, U> where T : U {
// 制約:Tは別の型パラメータUを継承
}
class MyGenericClass7<T, F> : IDisposable
where T : MyOtherClass<F>, IDisposable, new()
where F : class
{
// 制約:T,Fは別々のクラス
}
class MyOtherClass {
// あるクラス
}
interface IMyInterface {
// あるインターフェイス
}
void SwapIfGreater<T>(ref T lhs, ref T rhs) where T : System.IComparable<T>
{
T temp;
if (lhs.CompareTo(rhs) > 0)
{
temp = lhs;
lhs = rhs;
rhs = temp;
}
}
コメント: