Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中初始化等于默认值的Action变量_C#_.net - Fatal编程技术网

C# 如何在C中初始化等于默认值的Action变量

C# 如何在C中初始化等于默认值的Action变量,c#,.net,C#,.net,我有一个将动作作为参数的方法。参数可以是默认值,但如何使用本地参数初始化参数 代码: 要为动作赋值,您需要某种具有匹配签名的委托。不能指定其他任意值,包括t类型的值 目前还不清楚在传入null default的情况下,您到底想做什么-很可能是最基本的委托-在这种情况下,没有接受必要参数的op,而什么都不做-可以。结合以检查是否为空,您将得到: 对于整个方法,您可以直接内联: public static IServiceCollection AddAssetsSecure( thi

我有一个将动作作为参数的方法。参数可以是默认值,但如何使用本地参数初始化参数

代码:

要为动作赋值,您需要某种具有匹配签名的委托。不能指定其他任意值,包括t类型的值

目前还不清楚在传入null default的情况下,您到底想做什么-很可能是最基本的委托-在这种情况下,没有接受必要参数的op,而什么都不做-可以。结合以检查是否为空,您将得到:

对于整个方法,您可以直接内联:

public static IServiceCollection AddAssetsSecure(
        this IServiceCollection services, Action<IdentityOptions> identity = default)
{
     return services.AddAssetsIdentity(identity ?? ( _ => {}));
}
看起来这样行得通:

if (identity == default)
{
    identity = (IdentityOptions) => { };
    identity.Invoke(Statics.DefaultIdentityOptions);
}

参数可以是默认值-这对您来说到底意味着什么?您是否有意区分默认操作和空操作?默认操作始终为空,并且您不能在空操作时调用.Invoke。当传递的操作为null时,您想做什么?@KirkLarkin我尝试使用default而不是null。但这不是问题所在。如果是default或null,如何初始化变量?正如@corentpane所指出的,如果identity为null,那么您根本无法调用它。问题更多的是,当identity为null时,您希望运行什么代码?Action与IdentityOptions是不同的类型。你不能混用它们。任何委托的默认值都是null,顺便说一句。@Dai-jepp这是真的。你似乎期望调用完全不做任何事情的方法会发生一些有用的事情。。。您对identity.InvokeStatics.DefaultIdentityOptions的期望是什么;此答案中显示的调用?@AlexeiLevenkov Statics.DefaultIdentityOptions中的值是否用于配置服务?您认为是什么{}忽略它的参数并且根本不做任何事情{}只是什么都不做。。。无论您调用identity.InvokeStatics.DefaultIdentityOptions,都不会有任何改变;不管有没有行动。。。
public static IServiceCollection AddAssetsSecure(
        this IServiceCollection services, Action<IdentityOptions> identity = default)
{
     return services.AddAssetsIdentity(identity ?? ( _ => {}));
}
if (identity == default)
{
    identity = (IdentityOptions) => { };
    identity.Invoke(Statics.DefaultIdentityOptions);
}