我有两个包含扩展方法的项目。一个项目使用C#实现,另一个项目使用VB.NET实现,因为我在VB.NET中可以做一些我无法在C#中做的事情,我想在扩展方法中利用这些功能。
如何区分项目以传达其含义,同时区分它们以不同语言实现?
对于C#elitists:
VB.NET支持C#不支持的功能之一:
Doesn't C# Extension Methods allow passing parameters by reference?
仅供参考:这对参考类型不起作用,这是我感兴趣的。
public static void LoadFromXml<T>(this T targetObject, string xml)
{
targetObject = _Serializer.DeserializeFromXML<T>(xml);
}
答案 0 :(得分:5)
如何区分项目以传达其含义,同时区分它们以不同语言实现?
我实际上不传达此信息。给两个有意义的项目名称。每个项目都应该可以被两种语言使用,因此无论用于创建项目的语言如何,名称都应该有意义。
答案 1 :(得分:2)
啊......刚看到你的评论。我建议在C#中实现大多数扩展方法并将其称为“Core”,然后在VB.NET中实现额外的功能并将其称为“扩展”。
然后,让VB.NET显式引用Core并从中继承。然后,用户可以将Core程序集用于大多数任务,或者使用Extended进行其他功能。
编辑:如果你想办法不分割程序集,我仍然认为你的用户会更好,但显然我不知道你的所有要求/实现细节。