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

Struct and string generic constraint on class level

您好,有什么解决方法可以创建同时具有结构和字符串作为通用约束的 class 吗?

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

      // codes removed for brevity
}

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

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

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

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

public class TextAutoEncryptor : AutoEncryptorBase<string>
{
}