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);
    }

C# 中的变量类型

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);
}