方法,命名参数 [英] Methods, Named Parameters

查看:88
本文介绍了方法,命名参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我可以在C#方法中使用命名参数吗?即doFoo(fname =" do",

lname =" Foo");


干杯,皮特

Hi Guys,

Can I use named parameters in C# Methods. i.e doFoo(fname="do",
lname="Foo");

Cheers, Pete

推荐答案

彼得,


那些没有命名的参数(所有参数都有名字,没有?)。相反,

你会创建重载,如下所示:


public void doFoo()

{

//调用重载。

doFoo(" do");

}


public void doFoo(string fname)

{

//调用超载

doFoo(fname," Foo");

}


public void doFoo(string fname,string lname)

{

//在这里做点什么。

}


希望这会有所帮助。

-

- Nicholas Paldino [.NET / C#MVP] < br $> b $ b - mv*@spam.guard.caspershouse.com


Peter Hardy < PE ** @ nospam.com>在消息中写道

新闻:哦************* @ TK2MSFTNGP10.phx.gbl ...
Peter,

Those arent named parameters (all parameters have a name, no?). Rather,
you would create overloads, like this:

public void doFoo()
{
// Call the overload.
doFoo("do");
}

public void doFoo(string fname)
{
// Call the overload
doFoo(fname, "Foo");
}

public void doFoo(string fname, string lname)
{
// Do something here.
}

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Peter Hardy" <pe**@nospam.com> wrote in message
news:Oh*************@TK2MSFTNGP10.phx.gbl...
大家好,
我可以在C#方法中使用命名参数吗?即doFoo(fname =" do",
lname =" Foo");

干杯,Pete
Hi Guys,

Can I use named parameters in C# Methods. i.e doFoo(fname="do",
lname="Foo");

Cheers, Pete



嗨Nicholas,


在VB和SQL中,这些被称为命名参数。


彼得:我不知道相信这个结构是C#语言的一个特性。

这将要求你没有提供的所有参数都有一个分配给它们的

默认值,而且C#没有为

开发人员提供简单的方法来指示应该分配给

缺失参数的默认值。如果您愿意,可以传递Type.Missing。然而,

更常见的方法是做尼古拉斯建议的方法:重载方法

签名,带有包含较少参数的新签名。但是,如果你想要支持涉及相同

类型的多个参数的组合......你不能。


VB.NET没有这个问题。它支持命名参数。在

课程中,SQL也是如此。


参考文献:
http://dotnetjunkies.com/WebLog/pete...0/22/2778.aspx
http://msdn.microsoft.com/library/de...parameters.asp


HTH,

---尼克


Nicholas Paldino [.NET / C#MVP]" < mv*@spam.guard.caspershouse.com>写在

消息新闻:eh ************** @ TK2MSFTNGP15.phx.gbl ...
Hi Nicholas,

In VB and in SQL, these are called named parameters.

Peter: I do not believe that this construct is a feature of the C# language.
This would require that all parameters that you didn''t provide would have a
default value assigned to them, and C# provides no simple way for a
developer to indicate the default values that should be assigned to the
missing parameters. You can pass Type.Missing if you wish. However, the
more common approach is to do what Nicholas suggests: overload the method
signature with a new signature containing fewer parameters. However, if you
want to support combinations that involve multiple parameters of the same
type... you can''t.

VB.NET does not have this problem. It has support for named parameters. Of
course, SQL does too.

References:
http://dotnetjunkies.com/WebLog/pete...0/22/2778.aspx
http://msdn.microsoft.com/library/de...parameters.asp

HTH,
--- Nick

"Nicholas Paldino [.NET/C# MVP]" <mv*@spam.guard.caspershouse.com> wrote in
message news:eh**************@TK2MSFTNGP15.phx.gbl...
Peter,
那些没有命名的参数(所有参数都有名称,没有?)。
相反,你会创建重载,如下所示:

public void doFoo()
//
//调用重载。
doFoo(" do);
}

public void doFoo(string fname)
//
//调用重载
doFoo(fname," Foo" );
}

public void doFoo(string fname,string lname)
{
//在这里做点什么。
}
<希望这会有所帮助。

-
- Nicholas Paldino [.NET / C#MVP]
- mv*@spam.guard.caspershouse.com

Peter Hardy < PE ** @ nospam.com>在消息中写道
新闻:哦************* @ TK2MSFTNGP10.phx.gbl ...
Peter,

Those arent named parameters (all parameters have a name, no?). Rather, you would create overloads, like this:

public void doFoo()
{
// Call the overload.
doFoo("do");
}

public void doFoo(string fname)
{
// Call the overload
doFoo(fname, "Foo");
}

public void doFoo(string fname, string lname)
{
// Do something here.
}

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Peter Hardy" <pe**@nospam.com> wrote in message
news:Oh*************@TK2MSFTNGP10.phx.gbl...
大家好,
我可以在C#方法中使用命名参数。即doFoo(fname =" do",
lname =" Foo");

干杯,Pete
Hi Guys,

Can I use named parameters in C# Methods. i.e doFoo(fname="do",
lname="Foo");

Cheers, Pete




嗨Peter,


Nop,C#不支持命名参数,只支持位置。参数。


干杯,

-

Ignacio Machin,

ignacio .machin AT dot.state.fl.us

佛罗里达州交通部


" Peter Hardy" < PE ** @ nospam.com>在消息中写道

新闻:哦************* @ TK2MSFTNGP10.phx.gbl ...
Hi Peter,

Nop, C# does not support named parameters, only "positional" parameters.

Cheers,

--
Ignacio Machin,
ignacio.machin AT dot.state.fl.us
Florida Department Of Transportation

"Peter Hardy" <pe**@nospam.com> wrote in message
news:Oh*************@TK2MSFTNGP10.phx.gbl...
大家好,
我可以在C#方法中使用命名参数吗?即doFoo(fname =" do",
lname =" Foo");

干杯,Pete
Hi Guys,

Can I use named parameters in C# Methods. i.e doFoo(fname="do",
lname="Foo");

Cheers, Pete



这篇关于方法,命名参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆