C# 创建方法:NullReferenceException错误

C# 创建方法:NullReferenceException错误,c#,nullreferenceexception,C#,Nullreferenceexception,我对C#很陌生,所以请容忍我 这是我现有的代码块 public static class DummyClassName { public static T DummyTemplateFunc1<T>(DummyInterfaceName aaa1, Func<T> action1) { T DummyVal1 = action1(); { string strVal = aaa1.Somethi

我对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;
    }
}
测试时出现错误

我做错了什么?有人能提出解决方案吗?

公共静态T DummyTemplateFunc2(DummyInterfaceName aaa1,Func action2)
public static T DummyTemplateFunc2<T>(DummyInterfaceName aaa1, Func<T> action2)
{
    T DummyVal1 = action1();
    DummyMethodName(aaa1);
    return DummyVal1;
}
{ T DummyVal1=action1(); DummyMethodName(aaa1); 返回DummyVal1; }

使用
action1
的行应该使用
action2
,对吗
action1
正在抛出一个空指针引用,因为它不知道在哪里查找它,因为它不在您的方法的范围内。

具体在哪一行?使用调试器。使用调试器找出什么是null。在使用之前检查参数,如果null,则抛出异常。如何调用方法?@SonerGönül错误消息指向T DummyVal1=action1();线这有帮助吗?很抱歉,我在键入问题时出错了。我的目标是:您是否看到//类似的代码在代码块1中重复了两次?我需要为此创建一个单独的方法,并在两个现有模板内调用该方法。明白了吗?我明白你的意思,但是给我们看看你想概括的代码。这真的没什么帮助。我们现在只能说“将其提取到一个方法”,这与您的解释一样通用:)你能告诉我在代码块2中构造方法DummyMethodName的方法是否正确吗?忘了我犯的错误吧,我想。。?编辑你的问题,说明你想要什么。说明什么不起作用。。
"System.NullReferenceException: Object reference not set to an instance of an object."
public static T DummyTemplateFunc2<T>(DummyInterfaceName aaa1, Func<T> action2)
{
    T DummyVal1 = action1();
    DummyMethodName(aaa1);
    return DummyVal1;
}