gpt4 book ai didi

c# - c#中参数的动态类型转换

转载 作者:太空狗 更新时间:2023-10-29 23:17:45 26 4
gpt4 key购买 nike

我碰巧看到这样的代码。

function((dynamic) param1, param2);

我们什么时候以及为什么需要对参数进行这种动态类型转换?

最佳答案

可用于在运行时根据param1的类型动态选择function(...)的重载,例如:

public static void Something(string x)
{
Console.WriteLine("Hello");
}

public static void Something(int x)
{
Console.WriteLine("Goodbye");
}
public static void Main()
{
object x = "A String";

// This will choose string overload of Something() and output "Hello"
Something((dynamic)x);

x = 13;

// This will choose int overload of Something() and output "Goodbye"
Something((dynamic)x);
}

因此,即使 x 是对 object 的引用,它也会在运行时决定调用什么 Something() 重载。注意,如果没有合适的重载,会抛出异常:

    // ...
x = 3.14;

// No overload of Something(double) exists, so this throws at runtime.
Something((dynamic)x);

关于c# - c#中参数的动态类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7745925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com