【问题标题】:Struct and string generic constraint on class level类级别的结构和字符串通用约束
【发布时间】:2016-12-06 02:43:36
【问题描述】:

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

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

      // codes removed for brevity
}

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

【问题讨论】:

  • 不,不可能。
  • 即使您可以使用string? 类型也没有任何意义。
  • 是的,我希望如果有任何解决方法,让我重新表述我的问题。 :)
  • 尝试一个抽象的泛型基类并专门分解stringstruct 派生类型。
  • 您介意提供一个简短的示例吗?

标签: c# generics constraints generic-constraints


【解决方案1】:

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

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

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

public class TextAutoEncryptor : AutoEncryptorBase<string>
{
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2021-05-21
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多