internal
görünürlük ile dahili bir yardımcı sınıftır. Bu yüzden onu bulamadınız.
Microsoft kaynak kodu bu deseni çeşitli yerlerde kullanır.
Ama neden yapıyorsun? Eğer her durum işleyici o mantık koymak zorunda kalmadan tutarlı, güzel biçimli, lokalize istisna sağlar.
bir adım daha bazı tanımlar da örneğin derleyici yönergeleri, içeren alınması: (örneğin PropertyNull()
olarak)
internal static ArgumentException InvalidEnumArgument(string parameterName, int invalidValue, Type enumClass) {
#if NETFX_CORE
return new ArgumentException(Error.Format(CommonWebApiResources.InvalidEnumArgument, parameterName, invalidValue, enumClass.Name), parameterName);
#else
return new InvalidEnumArgumentException(parameterName, invalidValue, enumClass);
#endif
}
diğer yöntemler kod analiz bastırma mesajları ile süslenmiştir. Bu kod, her yerde tekrarlanmayı önlemek için bir kolaylık/tutarlılık mekanizmasıdır.
Muhtemelen bu kesin kodu kendi projenizde kullanmaya çalışmanızı öneriyorum çünkü ihtiyaçlarınız farklı olacaktır. Ama kesinlikle bir desen olarak kullanabilirsiniz.
"if" * ve "throw" işlemek için yardımcı bir yöntem kullanarak daha az boilerplate'i tercih ederim. Örnek: 'ArgumentHelper.ThrowIfNull (arg, "isim"); '(tabii bir uzantısı yöntem olabilir ki). –