是否可以在运行时将数据类型分配给未知变量
本文关键字:分配 未知 变量 数据类型 运行时 是否 | 更新日期: 2023-09-27 17:57:09
我是 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;
}
现在我接下来要做的是在霍夫曼的构造函数中,我在运行时通过从另一个类调用的构造函数调用接收变量"processingValue"的数据类型。 因此,processingValue 的数据类型是在运行时由另一个类在构造函数调用 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.
}
}
有没有办法类型转换"符号"的数据类型,使其成为"处理值"的数据类型?
我的意思是,Node Class
如果我将符号的数据类型设置为 "Type"
或任何其他类型,然后在构造函数中更改它的数据类型,使其与处理值的数据类型相同?通过运行时,我的意思是它是一个 silverlight 应用程序,我在运行程序时可以从有限的数据类型(在 short/int/long/Uint 之间)中进行选择,然后控件转到 Huffman 构造函数,并在组合框中选择相应的数据类型
*可以做吗? *非常感谢您的帮助。
可以使用
dynamic
类型来确保在运行时实际确定symbol
的数据类型。
public dynamic symbol;
这样,以下分配将全部有效:
symbol = (long) 100;
symbol = (int) 100;
symbol = (uint) 100;
我会选择Object
而不是Dynamic
。我只会将 Dynamics 与其他语言的复杂类型结合使用。
public class Node
{
public Node next, left, right;
public object symbol; // This variable will create problem
public int freq;
}