首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在运行时将数据类型分配给未知变量?

是否可以在运行时将数据类型分配给未知变量?
EN

Stack Overflow用户
提问于 2014-04-07 07:41:37
回答 2查看 5.8K关注 0票数 2

我是c# silverlight-5初学者,我有一个场景,其中我使用了像这样的类节点(它作为结构工作)。

代码语言:javascript
复制
   public class Node
    {
        public Node next, left, right;
        public int symbol; // This variable will create problem
        public int freq;
    }public Node front, rear;

这个类节点在另一个class Huffman中,如下所示

代码语言:javascript
复制
Class Huffman
{    
       public class Node
        {
            public Node next, left, right;
            public int symbol; // This variable will create problem
            public int freq;
        }public Node front, rear;    
} 

现在我要做的是在huffman的构造函数中,通过从另一个类调用构造函数,在运行时接收变量"processingValue“的数据类型。因此,processingValue的数据类型在运行时由另一个类在构造函数调用中决定。

在Huffman构造函数中,我必须这样做:

代码语言:javascript
复制
Class Huffman
{    
       public class Node
        {
            public Node next, left, right;
            public int symbol; // This variable will create problem
            public int freq;
        }public Node front, rear;  

      Huffman(AnotherClass object) //The call from another class is Huffman obj = new Huffman(this);
       {
        temp = new Node();
        temp.symbol = (processingValue); //THIS LINE CREATES PROBLEM  BECAUSE DATA TYPE OF "symbol" is int and may be data type of processingValue could be "short"/"long"/"UInt"etc. 
       }  
} 

是否有任何方法可以将“符号”的数据类型转换为"processingValue's“数据类型?

我的意思是在Node Class中,如果我将符号的数据类型设置为"Type"或任何其他类型,然后在构造函数中更改它的数据类型,使其与processingValue的数据类型相同?在运行时,我的意思是它是一个silverlight应用程序,我有comboBox可以在运行程序时从有限的数据类型(在短/int/long/Uint之间)中选择,然后控件转到Huffman构造函数,并在组合框中选择相应的数据类型

*有可能做到吗?*非常感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-07 07:46:46

可以使用dynamic类型来确保symbol的数据类型实际上是在运行时确定的。

代码语言:javascript
复制
public dynamic symbol;

这样做,下列作业都是有效的:

代码语言:javascript
复制
symbol = (long) 100;
symbol = (int) 100;
symbol = (uint) 100;
票数 5
EN

Stack Overflow用户

发布于 2014-04-07 07:56:10

我会选择Object而不是Dynamic。我只会将Dynamic与其他语言的复杂类型结合使用。

代码语言:javascript
复制
public class Node
{
    public Node next, left, right;
    public object symbol; // This variable will create problem
    public int freq;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22906337

复制
相关文章

相似问题

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