2012-07-08 52 views
5

我希望有一些聪明的方法来做到这一点。我有一个通用的基础服务,有几个方法...所以目前在这个基类中有一些方法,如Create(T obj)。我想是编译器创建一个更直观的参数名称(根据掉一些规则),以便当基本服务的一个具体实例是这样创建:用泛型创建有意义的参数名称

public class ProductService : BaseService<Product> 

我希望它编译该ProductService方法本(例如):

public Product Create(Product product) 

,而不是

public Product Create(Product obj) 

我知道这听起来很轻微,但一个实习生问我,有一天,我不能告诉他100%肯定它是不可能。

+2

我不知道任何方式来完成你的要求,但即使使用与'obj'相关的'entity'对我来说更有意义。特别是如果类从IEntity接口或基类实体类继承。 – Paul 2012-07-08 00:48:05

+0

确实......同意...... – Rikon 2012-07-08 00:50:00

回答

3

据我所知,没有办法自动实现这一点。但是,如果你真的想做的事,你可以使该方法virtualBaseService,并在每个子类中重写它:

public override Product Create(Product product) { 
    return base.Create(product); 
} 
+2

我同意这可能是实现海报要求的最佳方式,但这听起来像是一个很小的好处。我不会建议真的这样做,但它会起作用。 – 2012-07-08 03:44:41

+0

@JonathanRupp:+1;特别是,因为产品obj或产品实体仍然具有语义意义。 – 2012-07-08 10:36:59

+0

是啊...有时候会有这些小小的字幕,我偶尔会想念...我希望能像 public void Insert(T @@ T.GetType()。Name.ToLower()) 此外,有了这种心态,我可以编译时间反映在T ...但是,哦,好吧...把我认为有一个很好的队伍,我猜... – Rikon 2012-07-10 01:32:19