我發現下面的代碼:爲什麼c#編譯器從這段代碼創建一個PrivateImplementationDetails?
public static class MimeHelper
{
public static string GetMimeType(string strFileName)
{
string retval;
switch (System.IO.Path.GetExtension(strFileName).ToLower())
{
case ".3dm": retval = "x-world/x-3dmf"; break;
case ".3dmf": retval = "x-world/x-3dmf"; break;
case ".a": retval = "application/octet-stream"; break;
// etc...
default: retval = "application/octet-stream"; break;
}
return retval;
}
}
導致編譯器來創建此namespaceless,內部類(從反射器複製):
<PrivateImplementationDetails>{621DEE27-4B15-4773-9203-D6658527CF2B}
- $$method0x60000b0-1 : Dictionary<String, Int32>
- Used By: MimeHelper.GetMimeType(String) : String
這是爲什麼? 我怎麼會改變上面的代碼,因此不會發生(只是出於興趣)
感謝
安德魯
作爲題外話,你爲什麼要使用額外的字符串變量retval,如果你可以立即從開關返回? – abatishchev 2009-04-08 12:09:51
,因爲它是從某處複製和粘貼作業,是的,我可以(也會)改變它的做法 – 2009-04-08 12:12:11