我是c#silverlight-5初学者,我有一个场景,其中我使用了这样的类节点(作为结构)
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
内,如此
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时决定的。
在Huffman构造函数中,我必须做这样的事情:
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”的数据类型?
我的意思是Node Class
如果我将符号的数据类型设置为"Type"
或任何其他,然后我在构造函数中更改它的数据类型,使其与processingValue的数据类型相同?
运行时我的意思是它是一个silverlight应用程序,我有comboBox在运行程序时从有限的数据类型(在short / int / long / Uint中)中进行选择,然后控件转到Huffman构造函数,其中选择了相应的数据类型组合框
* 可以吗? * 非常感谢您的帮助。
答案 0 :(得分:1)
您可以使用dynamic
类型确保symbol
的数据类型实际上是在运行时确定的。
public dynamic symbol;
通过这样做,以下分配将全部有效:
symbol = (long) 100;
symbol = (int) 100;
symbol = (uint) 100;
答案 1 :(得分:1)
我会选择Object
代替Dynamic
。我只会将Dynamics与其他语言的复杂类型结合使用。
public class Node
{
public Node next, left, right;
public object symbol; // This variable will create problem
public int freq;
}