3
讓我說,我知道這是一個受保護的方法,我不應該把它啓動,但它不應該工作,因爲MemberwiseClone在對象類字符串從它定義繼承?通過反射調用的String.MemberwiseClone()方法不起作用,爲什麼?
因此,這是克隆方法(我刪除空引用處理專注於什麼是重要的):
public static T ShallowClone<T>(T obj)
{
MethodInfo memberwiseClone;
memberwiseClone = obj.GetType().GetMethod("MemberwiseClone", BindingFlags.Instance | BindingFlags.NonPublic);
return (T)memberwiseClone.Invoke(obj, null);
}
如果我這樣稱呼它:
string str = ShallowClone("My string");
結果字符串(STR )將是:
"M\0\0\0\0\0\0\0\0"
在此先感謝!
瘋狂猜測:底層native是一個指針,「MemberwiseClone」採用值(即第一個字符)和長度,而不復制其餘部分。 – Ryan
克隆一個字符串有什麼意義? – spender
我是從一個集合中克隆元素,碰巧找到一個字符串... –