Я очень новичок в C#, поэтому, пожалуйста, несите меня.Метод создания: ошибка NullReferenceException
Это мой существующий блок кода.
public static class DummyClassName
{
public static T DummyTemplateFunc1<T>(DummyInterfaceName aaa1, Func<T> action1)
{
T DummyVal1 = action1();
{
string strVal = aaa1.SomethingInInterface();
// similar code
}
return DummyVal1;
}
public static T DummyTemplateFunc2<T>(DummyInterfaceName aaa1, Func<T> action2)
{
T DummyVal2 = action2();
{
string strVal = aaa1.SomethingInInterface();
// similar code
}
return DummyVal2;
}
}
Моя задача - избежать повторения кода и сделать другой метод обработки повторяющегося кода. Это то, что я пробовал.
public static class DummyClassName
{
public static void DummyMethodName(DummyInterfaceName aaa1)
{
string strVal = aaa1.SomethingInInterface();
// similar code
}
public static T DummyTemplateFunc1<T>(DummyInterfaceName aaa1, Func<T> action1)
{
T DummyVal1 = action1();
DummyMethodName(aaa1);
return DummyVal1;
}
public static T DummyTemplateFunc2<T>(DummyInterfaceName aaa1, Func<T> action2)
{
T DummyVal2 = action2();
DummyMethodName(aaa1);
return DummyVal1;
}
}
Но это дает мне ошибку
"System.NullReferenceException: Object reference not set to an instance of an object."
При тестировании.
Что я делаю неправильно? Может ли кто-нибудь предложить обходной путь?
На какой строке точно? Используйте отладчик. –
Используйте отладчик, чтобы узнать, что равно null. – SLaks
Проверьте параметр перед тем, как использовать его, и если null выдает исключение. –