我对C#很新,所以请耐心等待。
这是我现有的代码块。
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."
测试时出现错误。
我做错了什么?有人可以建议解决方法吗?
答案 0 :(得分:0)
public static T DummyTemplateFunc2<T>(DummyInterfaceName aaa1, Func<T> action2)
{
T DummyVal1 = action1();
DummyMethodName(aaa1);
return DummyVal1;
}
使用action1
的行应使用action2
,对吧? action1
抛出一个nullpointer引用,因为它不知道在哪里查找它,因为它不在你方法的范围内。