相关疑难解决方法(0)

如何定义命名参数C#

这似乎是一个简单的问题,但由于某种原因,我无法在任何地方找到答案.基本上,我希望能够实现一个带NamedParameters的构造函数.

通过命名参数,我不是指具有默认值(可选参数)的参数,例如:

public SomeMethod(){
    string newBar = Foo(bar2 : "customBar2");
}

public string Foo(string bar1 = "bar1", bar2 = "bar2" ){
     //...
}
Run Code Online (Sandbox Code Playgroud)

什么我想实现一个很好的例子是AuthorizeAttributeSystem.Web.Mvc装配.您可以使用以下方式:

[Authorize(Roles = "Administrators", Users = "ThatCoolGuy")]
public ActionResult Admin(){

}
Run Code Online (Sandbox Code Playgroud)

intellisense中构造函数的签名类似于以下示例,我相信(请确认)那些NamedParameters正在映射到类属性.

AuthorizeAttribute.AuthorizeAttribute(NamedParameters ...)Initiliaze System.Web.Mvc.AuthorizeAttribute类的新实例

命名参数:

  • 订单int
  • 用户字符串
  • 角色字符串

.net c# custom-attributes named-parameters

17
推荐指数
3
解决办法
1万
查看次数

C# - 如何使用默认值跳过参数?

请考虑以下方法示例:

public void MyMethod (string par1, bool par2 = "true", string par3="")
{
}
Run Code Online (Sandbox Code Playgroud)

现在让我们说我调用MyMethod并将par3的值设置为"IamString".

如果不将par2的值设置为true或false,我怎么能这样做?

我基本上想要将par2值保留为默认值.

我问这个是因为在Flash的ActionScript中可以通过使用关键字default来做到这一点,所以我可以调用MyMethod("somestring",默认,"IamString"),par2将被解释为true,这是它的默认值.我想知道C#是否也有可能.

c# parameter-passing optional-parameters

6
推荐指数
2
解决办法
4374
查看次数

C#4.0的新"命名参数"功能不应该被称为"命名参数"吗?

我想这个命名可能有历史原因,其他语言也有相似的功能,但在我看来参数总是在C#中有一个名字.争论是未命名的.或者是否有一个特殊原因选择这个术语?

parameters arguments terminology named-parameters c#-4.0

3
推荐指数
2
解决办法
790
查看次数