类级别的结构和字符串通用约束

arv*_*hts 2 c# generics constraints generic-constraints

您好,是否有任何解决方法可以创建一个同时具有结构和字符串作为通用约束的类?

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

      // codes removed for brevity
}
Run Code Online (Sandbox Code Playgroud)

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

Eni*_*ity 5

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

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

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

public class TextAutoEncryptor : AutoEncryptorBase<string>
{
}
Run Code Online (Sandbox Code Playgroud)