C#中的变体类型

why*_*heq 8 c# types

VBA(我假设VB)有一个Variant类型,我认为它占用了更多的内存,但涵盖了各种数据类型.

c#中有等价物吗?

在Windows窗体中说我有以下内容,我如何修改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);
    }
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 13

void upDateRTB(object z) {
    MessageBox.Show(this, "amount; " + Convert.ToString(z));
}
Run Code Online (Sandbox Code Playgroud)


Rib*_*oks 7

如果您在谈论C#中的“变体”类型,请查看dynamic.net 4.0 中的类型。

但是要解决您的任务,z.ToString()在您的应用中就足够了MessageBox.Show


Me.*_*ame 7

一个对象参数会接受所有,但如果你想保持变量强类型(并避免在过程中装箱),你可以使用泛型:

void upDateRTB<T>(T z) {
    MessageBox.Show(this,"amount; "+ Convert.ToString(z)); 
}
Run Code Online (Sandbox Code Playgroud)

方法调用可以保持完全相同,因为编译器可以根据给定的参数解析泛型类型.