首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自变量的属性类型

来自变量的属性类型
EN

Stack Overflow用户
提问于 2011-01-12 22:13:28
回答 4查看 1.6K关注 0票数 1

考虑下面的类:

代码语言:javascript
复制
public class ShortName
{
    public string ValueString { get; set; }

    private Type ValueType { get; }

    public typeof(ValueType) Value
    {
        get
        {
            //do stuff
        }
    }
}

这是不可能的,因为无法识别typeof(ValueType)。有人能帮我把"Value“属性类型定义为ValueType返回的类型吗?

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-12 22:22:23

使用泛型可能是可能的。尝试:

代码语言:javascript
复制
public class ShortName<T>
{     
     public string ValueString { get; set; }      
     private Type ValueType { get; }      
     public T Value<T>  
     { 
         get {  return /*Something cast to a T */ ; }     
     }
}
票数 0
EN

Stack Overflow用户

发布于 2011-01-12 22:15:54

这是完全不可能的。

如果你仔细想一想,它一开始就没有任何意义。

属性必须具有编译时类型;您正在尝试定义一个仅在运行时知道其类型的属性。

您将如何使用该属性?

相反,您可以创建object属性或使用泛型。

票数 1
EN

Stack Overflow用户

发布于 2011-01-12 22:16:22

不知道你想要什么,但是:

代码语言:javascript
复制
public Type Value
{
    get
    {
        return ValueType.GetType();
    }
}

因为typeof(<anything>)将返回Type

如果这不是您想要的,可以考虑使用Generics

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4669731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档