在unity项目编写代码的过程中,使用系统自带的一些函数,但是当我们有特殊需求时,需要对类型特殊处理时,往往系统所提供的函数是不支持我们做的。
所以需要我们扩写类型的方法。
比如下面这段代码。通过传入int型的一段时间戳,返回自己所需要的string字符串。
public static string GetTimeFormatString(this int timeStamp)
{
if (timeStamp<60)
{
return $"{timeStamp}秒";
}
if (timeStamp>60&&timeStamp<3600)
{
return $"{timeStamp / 60}分{timeStamp % 60}秒";
}
if (timeStamp < 86400 && timeStamp > 3600)
{
return $"{timeStamp / 3600}时{timeStamp / 60 % 60}分";
}
if (timeStamp > 86400)
{
return $"{timeStamp / 86400}天{timeStamp / 3600 % 24}时";
}
return $"";
}
//此函数的使用
int timeStamp=50;
string timeStr=timeStamp.GetTimeFormatString();
//timeStr的值为50秒
这里的timeStamp.GetTimeFormatString();是将timeStamp作为this传入到函数中。
其他的类型也可以这么写。
public static T1 func(this T name)
{
return T1;
}
其中T1是你需要的类型,T是需要操作的类型。
当然T1和T是可以想等的。
本文章的代码是针对一个特殊的需求所写。虽然简陋,当也能能够使用。