框架上传
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
|
||||
using System;
|
||||
|
||||
namespace Stary.Evo
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
[ClassAPI("01.FluentAPI.CSharp", "System.Object", 0)]
|
||||
[APIDescriptionCN("针对 System.Object 提供的链式扩展,理论上任何对象都可以使用")]
|
||||
[APIDescriptionEN("The chain extension provided by System.object can theoretically be used by any Object")]
|
||||
#endif
|
||||
public static class SystemObjectExtension
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
// v1 No.1
|
||||
[MethodAPI]
|
||||
[APIDescriptionCN("将自己传到 Action 委托中")]
|
||||
[APIDescriptionEN("apply self to the Action delegate")]
|
||||
[APIExampleCode(@"
|
||||
new GameObject()
|
||||
.Self(gameObj=>gameObj.name = ""Enemy"")
|
||||
.Self(gameObj=>{
|
||||
Debug.Log(gameObj.name);
|
||||
});"
|
||||
)]
|
||||
#endif
|
||||
public static T Self<T>(this T self, Action<T> onDo)
|
||||
{
|
||||
onDo?.Invoke(self);
|
||||
return self;
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
// v1 No.1.1
|
||||
[MethodAPI]
|
||||
[APIDescriptionCN("将自己传到 Func<T,T> 委托中,然后返回自己")]
|
||||
[APIDescriptionEN("apply self to the Func<T,T> delegate")]
|
||||
[APIExampleCode(@"
|
||||
new GameObject()
|
||||
.Self(gameObj=>gameObj.name = ""Enemy"")
|
||||
.Self(gameObj=>{
|
||||
Debug.Log(gameObj.name);
|
||||
});"
|
||||
)]
|
||||
#endif
|
||||
public static T Self<T>(this T self, Func<T,T> onDo)
|
||||
{
|
||||
return onDo.Invoke(self);
|
||||
}
|
||||
|
||||
|
||||
#if UNITY_EDITOR
|
||||
// v1 No.2
|
||||
[MethodAPI]
|
||||
[APIDescriptionCN("判断是否为空")]
|
||||
[APIDescriptionEN("Check Is Null,return true or false")]
|
||||
[APIExampleCode(@"
|
||||
var simpleObject = new object();
|
||||
|
||||
if (simpleObject.IsNull()) // simpleObject == null
|
||||
{
|
||||
// do sth
|
||||
}")]
|
||||
#endif
|
||||
public static bool IsNull<T>(this T selfObj) where T : class
|
||||
{
|
||||
return null == selfObj;
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
// v1 No.3
|
||||
[MethodAPI]
|
||||
[APIDescriptionCN("判断不是为空")]
|
||||
[APIDescriptionEN("Check Is Not Null,return true or false")]
|
||||
[APIExampleCode(@"
|
||||
var simpleObject = new object();
|
||||
|
||||
if (simpleObject.IsNotNull()) // simpleObject != null
|
||||
{
|
||||
// do sth
|
||||
}")]
|
||||
#endif
|
||||
public static bool IsNotNull<T>(this T selfObj) where T : class
|
||||
{
|
||||
return null != selfObj;
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
// v1 No.36
|
||||
[MethodAPI]
|
||||
[APIDescriptionCN("转型")]
|
||||
[APIDescriptionEN("cast")]
|
||||
[APIExampleCode(@"
|
||||
int a = 10;
|
||||
Debug.Log(a.As<float>())
|
||||
// 10
|
||||
")]
|
||||
#endif
|
||||
public static T As<T>(this object selfObj) where T : class
|
||||
{
|
||||
return selfObj as T;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user