【发布时间】:2016-10-02 06:27:45
【问题描述】:
在 Unity3d C# 中,我可以创建一个调用 Debug.Log 的函数,例如:
void p(string p)
{
Debug.Log
(p);
}
这适用于 int、string、Vector3、GameObject 吗?
谢谢
【问题讨论】:
在 Unity3d C# 中,我可以创建一个调用 Debug.Log 的函数,例如:
void p(string p)
{
Debug.Log
(p);
}
这适用于 int、string、Vector3、GameObject 吗?
谢谢
【问题讨论】:
Debug.Log 已经可以做到这一点。它以object 和Object 作为参数。这些是Debug.Log 的函数原型:
public static void Log(object message);
public static void Log(object message, Object context);
您可以通过两种方式做到这一点:
1.使用object和Object作为参数。
void p(object message)
{
Debug.Log(message);
}
void p(object message, Object context)
{
Debug.Log(message, context);
}
用法:
只有一个参数
p("Test");
p(50);
p(50.5f);
p(false);
多参数
p(false, new Object());
2.使用泛型:
void p<T1>(T1 message)
{
Debug.Log(message);
}
void p<T1, T2>(T1 message, T2 context)
{
Debug.Log(message, context as Object);
}
用法:
只有一个参数
p<string>("Test");
p<int>(50);
p<float>(50.5f);
p<bool>(false);
多参数
p<bool,Object>(false, new Object());
我会选择第一种方法,因为它更容易打字。
【讨论】: