Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ems您正在为字段寻找T类型(泛型类型),然后您希望限制T支持的类型。我更新了我的答案,请阅读我的答案的末尾,因为在C#中,指定泛型类型的支持类型有一些限制。还可以阅读aha,所以如果我对诸如where T:Struct之类的约束感到满意,那么它在泛型字段_C#_.net_Vb.net_Inheritance - Fatal编程技术网

ems您正在为字段寻找T类型(泛型类型),然后您希望限制T支持的类型。我更新了我的答案,请阅读我的答案的末尾,因为在C#中,指定泛型类型的支持类型有一些限制。还可以阅读aha,所以如果我对诸如where T:Struct之类的约束感到满意,那么它在泛型字段

ems您正在为字段寻找T类型(泛型类型),然后您希望限制T支持的类型。我更新了我的答案,请阅读我的答案的末尾,因为在C#中,指定泛型类型的支持类型有一些限制。还可以阅读aha,所以如果我对诸如where T:Struct之类的约束感到满意,那么它在泛型字段,c#,.net,vb.net,inheritance,C#,.net,Vb.net,Inheritance,ems您正在为字段寻找T类型(泛型类型),然后您希望限制T支持的类型。我更新了我的答案,请阅读我的答案的末尾,因为在C#中,指定泛型类型的支持类型有一些限制。还可以阅读aha,所以如果我对诸如where T:Struct之类的约束感到满意,那么它在泛型字段中是可行的(我不知道泛型字段是一种东西!),但是,由于我们不能施加更广泛的限制,这是不够的。您完全正确地认识到,我正在使用反射,如果没有反射,问题将不存在,因为我将有更多关于字段的信息。单元测试是一个好主意。谢谢! using System;


ems您正在为字段寻找T类型(泛型类型),然后您希望限制T支持的类型。我更新了我的答案,请阅读我的答案的末尾,因为在C#中,指定泛型类型的支持类型有一些限制。还可以阅读aha,所以如果我对诸如where T:Struct之类的约束感到满意,那么它在泛型字段中是可行的(我不知道泛型字段是一种东西!),但是,由于我们不能施加更广泛的限制,这是不够的。您完全正确地认识到,我正在使用反射,如果没有反射,问题将不存在,因为我将有更多关于字段的信息。单元测试是一个好主意。谢谢!
using System;

public class Program
{
    public static void Main()
    {
        var b = new Book();
        b.SetMyField(1);
        Console.WriteLine(b.MyField);
        b.SetMyField('A');
        Console.WriteLine(b.MyField);
    }
}


public interface IMySerializable {
    object MyField { get; }
    void SetMyField( int val);
    void SetMyField( char val);
    void SetMyField( byte val);
}

public class Book : IMySerializable {

    public object MyField { 
        get; 
        private set;
    }

    public void SetMyField( int val){
        MyField=val;
    }

    public void SetMyField( char val){
        MyField=val;
    }

    public void SetMyField( byte val){
        MyField=val;
    }
}