```
string s = "hello world!";
char[] ch = s.ToCharArray();
ch[3] = 'L';
s = new string(ch);
```
```
class是引用类型,struct是值类型.
```
当传递的参数是(“name”,5)时,但参数列表是(string, uint),则报错。 failed to convert parameters
where字句后面有new()约束的话,T类型必须有公有的无参的构造函数。
public class ClassObjPool<T> : ClassObjPoolBase where T : PooledClassObject, new() {
}
StartCoroutine(DelayToInvoke.DelayToInvokeDo(() => {
}, 3.0f));
public static bool operator == (ConfigObject a, ConfigObject b)
{
// 不能使用(a == null && b == null),陷入死循环
if (!(a is ConfigObject) && !(b is ConfigObject)) return true;
if (!(a is ConfigObject) || !(b is ConfigObject)) return false;
return a.moveSpeed == b.moveSpeed;
}
public static T CloneModel<T>(T obj)
{
//如果是字符串或值类型则直接返回
if (obj is string || obj.GetType().IsValueType) return obj;
object retval = Activator.CreateInstance(obj.GetType());
FieldInfo[] fields = obj.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
foreach (FieldInfo field in fields)
{
try { field.SetValue(retval, CloneModel(field.GetValue(obj))); }
catch { }
}
return (T)retval;
}
/// 获取当前时间戳
/// </summary>
/// <param name="bflag">为真时获取13位时间戳,为假时获取10位时间戳.</param>
/// <returns></returns>
public static long GetTimeStamp(bool bflag = false)
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
long ret;
if (bflag)
ret = Convert.ToInt64(ts.TotalSeconds);
else
ret = Convert.ToInt64(ts.TotalMilliseconds);
return ret;
}
TimeSpan ts1 = new TimeSpan(DateTime.Now.Ticks);
Debug.Log("耗时=" + (new TimeSpan(DateTime.Now.Ticks)).Subtract(ts1).Duration().TotalSeconds.ToString()); // 毫秒使用TotalMilliseconds
ACTION_STATE actionState = (ACTION_STATE)Enum.Parse(typeof(ACTION_STATE), "Attack");
Debug.Log("GameObject "+ actionState.ToString());
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:data options:0 error:&error];
if (error) {
NSLog(@"onLoginSuccessQuanNiSDK json序列化失败:%@",error);
self.sdk_login = 0;
[self sdkLoginCallback:""];
return;
}
c#传递c++的float array
extern"C" __declspec(dllexport) float* ConvertExrToPng(const char* pathName, const char * outputPathName) {}
[DllImport("ConvertEXR")]
private static extern IntPtr ConvertExrToPng(string pathName, string outputPathName);
IntPtr dataPtr = ConvertExrToPng(Path.GetFullPath(inPath), Path.GetFullPath(outPath));
Marshal.Copy(dataPtr, scaleFactors, 0, 3);
@"^\d+\.json$"; // 数字.json
@"\.json$"; // 匹配以 .json 结尾的字符串
Action<int, int> updateStepCallback;
if (updateStepCallback != null)
updateStepCallback(curCount, count);
可替换为:
updateStepCallback?.Invoke(curCount, count);
If a variable is const, it is also static. If you want a const and static variable, just declare that variable as const; if all you want is a static variable, just mark it static.