C# 中的变量类型
本文关键字:类型 变量 | 更新日期: 2023-09-27 18:37:22
VBA(我假设VB)有一个变量类型,我相信它会占用更多内存,但涵盖了各种数据类型。
C# 中有等效项吗?
在窗口表单中,假设我有以下内容,我将如何修改 z 的类型以使其正常运行
private void uxConvertButton_Click(object sender, EventArgs e)
{
int x = 10;
byte j = (byte)x;
upDateRTB(j);
long q = (long)x;
upDateRTB(q);
string m = x.ToString();
upDateRTB(m);
}
void upDateRTB(long z) {
MessageBox.Show(this,"amount; "+z);
}
void upDateRTB(object z) {
MessageBox.Show(this, "amount; " + Convert.ToString(z));
}
对象参数将接受所有变量,但如果您想保持变量的强类型(并避免在此过程中装箱),则可以使用泛型:
void upDateRTB<T>(T z) {
MessageBox.Show(this,"amount; "+ Convert.ToString(z));
}
方法调用可以保持完全相同,因为编译器可以根据给定的参数解析泛型类型。
如果你在谈论 c# 中的"变体"类型,请查看 .net 4.0 中的dynamic
类型
但是为了解决您的任务,在您的MessageBox.Show
中使用z.ToString()
就足够
dynamic 关键字或对象类型可以为您提供所需的变体行为,但:
在这种情况下,我将函数更改为:
void upDateRTB(string z) {
MessageBox.Show(this,"amount; " + z);
}
因为这就是所有的方法需求。
"amount; "+z
隐式调用 ToString 方法z
。所以你可以使用类型 object
:
void upDateRTB(object z) {
MessageBox.Show(this,"amount; "+z);
}
你也可以使用动态,但我不明白这一点:
void upDateRTB(dynamic z) {
MessageBox.Show(this,"amount; "+z);
}