在函数前面调用函数:(T)func(param1,param2)。这叫什么,它是什么?我假设它正在强制返回类型?
同样,模式采用以下形式:
(T)func(params)
示例:
(int)Mathf.Log(level, 2f) // it's an example from unity, level is of type int
答案 0 :(得分:3)
(T)
是一个明确的演员。请参阅此处的文档,在“明确转化”标题下:https://msdn.microsoft.com/en-us/library/ms173105.aspx
func(params)
位只是一个方法调用。演员阵容不是其中的一部分,你只是投射结果。
// cast the result of a method call
var i = (int)Mathf.Log(level, 2f);
// cast a random object
var s = (string)someObject;
答案 1 :(得分:3)
这不是模式本身(取决于“模式”的确切含义)......它只是C#。听起来好像你对出现一个方法被转换为原始类型的事实感到困惑?
它实际上做的是将Mathf.Log(float
)的返回类型转换为int
。
所以这个:
int log = (int)Mathf.Log(level, 2f);
等同于:
float result = Mathf.Log(level, 2f);
int log = (int)result;
答案 2 :(得分:1)