我有两种方法:
BuildThing(Thing a);
BuildThings(IEnumerable<Thing> things);
Is this good from a clean code point of view? Or is maybe it would be better to just use BuildThings and pass IEnumerable with only one Thing? Or use params?
感谢。
我有两种方法:
BuildThing(Thing a);
BuildThings(IEnumerable<Thing> things);
Is this good from a clean code point of view? Or is maybe it would be better to just use BuildThings and pass IEnumerable with only one Thing? Or use params?
感谢。
我的个人倾向如下:
接口:
void Build(Thing thing);
void Build(IEnumerable<Thing> things);
执行:
void Build(Thing thing)
{
Build(new [] { thing });
}
void Build(IEnumerable<Thing> things)
{
//do stuff
}
我倾向于采用这一模式的原因是,它确保你留在DRY。 虽然允许你灵活多载荷,但与<条码>第条码>不同,你必须把任何非记录电子数字转换成一个阵列。
你们可以做的是:
BuildThings(params Thing[] things);
能够使用:
BuildThings(thing1, thing2, thing3, ...);
贵方的方法不会是好的解决方案。
i 认为,只要你只是一个执行方法,你就会有两条或更多方法。
public void BuildThing(Thing a)
{
this.BuildThings(new List<Thing>(){a});
}
你提供的方法似乎是一种良好做法。 当你只重新建立单一案例而不是多起案件时,你想要做的事情可能有所不同。
我不想使用<代码>第<>条/代码”,因为如果你有名单,就迫使你建立阵列。
Purely from a clean code point of view, this is perfectly ok. Although functionally the alternatives might or might not suit you better. For example, using params
forces the collection to be enumerated before the call as opposed to lazily enumerated inside the call.
I would consider two cases:
BuildThing(Thing a)
I would use BuildThings(IEnumerable<Thing> things)
and pass IEnumerable with only one Thingparams
This option have one drawback - you have to convert every IEnumerable
to Array
(except of arrays of course) if you want to pass more then one argument.I would go with params
solution probably.
What is the use of default keyword in C#? Is it introduced in C# 3.0 ?
I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...
I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...
I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...
I have two EF entities. One has a property called HouseNumber. The other has two properties, one called StartHouseNumber and one called EndHouseNumber. I want to create a many to many association ...
How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...
Since I cannot order my dictionary, what is the best way of going about taking key value pairs and also maintaing an index?
Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...