解决方案 »

  1.   

    不行,其实你返回struct和string彼此之间根本没公共的东西,你没必要因为你想而去约束
      

  2.   

    有两个问题:
    1.  struct,string 这两个就冲突吧, 约束的两个是 and的关系,不是or的关系
    System.String是从Object继承的,string类型的object不可能是Struct了。2. string是一个sealed的class. 不能从它继承,如果约束成strring,就可以直接写成public string GetExecuteScalar(string sql)
    string的定义:
    public sealed class String : IComparable, 
    ICloneable, IConvertible, IComparable<string>, IEnumerable<char>, 
    IEnumerable, IEquatable<string>
      

  3.   

    作为约束的类型应该是基类,string型不能继承。
    另外,struct和string本身类型就冲突。
    c#泛型约束只能是接口,基类,结构,无参数构造函数这几类。
      

  4.   

    很遗憾,在目前的C#语法下没法做到这一点。要么你放弃泛型,要么你自己对ValueType做一个包装,比如用Nullable<T>
      

  5.   


    string := System::String base System::Obejct
    with struct 如果不报错,我跟着你姓了