1
我已經在規則集中打開CA1007作爲錯誤。然後我寫了下面的代碼來違反這個規則,但它仍然沒有將其檢測爲Warning或Error。不知道我在哪裏犯錯,它是在代碼中還是在規則集中?Visual Studio 2010中的代碼分析警告 - CA1007
class Program
{
public static void Swap(ref object object1, ref object object2)
{
object temp = object1;
object1 = object2;
object2 = temp;
}
static void Main(string[] args)
{
string string1 = "Swap";
string string2 = "It";
object object1 = (object)string1;
object object2 = (object)string2;
Program.Swap(ref object1, ref object2);
string1 = (string)object1;
string2 = (string)object2;
Console.WriteLine("{0} {1}", string1, string2);
Console.ReadLine();
}
}
有什麼建議嗎?謝謝!
這些方法位於私有類中,通常它們不受API規則的限制(因爲該方法不是公共API)。儘量讓課堂公開。還要確保你正在編譯時沒有優化這樣的方法(特別是當私有的)migth被編譯器優化掉時,導致代碼分析無法找到它。 – jessehouwing
從[CA1007的文檔](http://msdn.microsoft.com/en-GB/library/ms182179.aspx):*「一個**外部可見**方法包含一個System.Object類型的引用參數,而包含程序集的目標是.NET Framework 2.0。「* –
@jessehouwing:謝謝你,工作!另外,你是什麼意思「確保你沒有優化編譯」,我該怎麼做? – inspiringmyself