类级

时间:2016-12-06 02:43:37

标签: c# generics constraints generic-constraints

您是否有关于创建一个既包含struct又使用string作为通用约束的类的解决方法?

public class AutoEncryptor<T> where T : struct, string {
{
      private T? _value;

      // codes removed for brevity
}

我的目标是避免创建具有相同结构的重复方法的麻烦,但区别在于,另一个接受字符串而另一个接受struct(值类型)。

1 个答案:

答案 0 :(得分:4)

不,这是不可能的。最好的方法是使用抽象通用基类,并专门用于stringstruct

public abstract class AutoEncryptorBase<T>
{
    protected T _value;
}

public class AutoEncryptor<T> : AutoEncryptorBase<T?> where T : struct
{
}

public class TextAutoEncryptor : AutoEncryptorBase<string>
{
}