首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有不同返回类型的重载方法,该方法在另一个使用名称空间的项目中不引用

具有不同返回类型的重载方法,该方法在另一个使用名称空间的项目中不引用
EN

Stack Overflow用户
提问于 2015-03-20 10:14:05
回答 1查看 267关注 0票数 0

项目A几乎没有重载的方法来返回XMLNode和MSXML2.IXMLDOMNode有但参数不同,如下所示

代码语言:javascript
复制
static public XmlNode XMLNewChildNode(XmlNode oParent, string sName)
    {
        ...
        return xmlNode;
    }

代码语言:javascript
复制
static public MSXML2.IXMLDOMNode XMLNewChildNode(MSXML2.IXMLDOMNode oParent, string sName)
    {
        ...
        return ixmldomnode;
    }

项目B没有对interop.MSXML2.dll的引用,当我使用XMLNewChildNode()来返回XMLNode时,就会得到编译错误。

代码语言:javascript
复制
XmlNode oNode = XMLHelper.XMLNewChildNode2((XmlNode)oDoc, UCMCommonPTLIndep.gsUCP_DDT_ROOT_NODE);

错误:The type 'MSXML2.IXMLDOMNode' is defined in an assembly that is not referenced. You must add a reference to assembly 'Interop.MSXML2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=98ec9cb7b15b7e98'.

在c#中不可能有这样的重载吗?我错过了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-20 10:21:52

“在c#中不可能有这样的重载吗?”

显然,只要这些超载的使用者有所需的参考资料,就行了。

您应该能够通过给方法不同的名称来解决这个问题,但最好是将这些方法放在不同的类中。这也将解决您的问题:

代码语言:javascript
复制
public static class XmlNodeHelper
{
    static public XmlNode XMLNewChildNode(XmlNode oParent, string sName)
    {
        ...
        return xmlNode;
    }
}

public static class MSXMLHelper
{
    static public MSXML2.IXMLDOMNode XMLNewChildNode(MSXML2.IXMLDOMNode oParent, string sName)
    {
        ...
        return ixmldomnode;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29164076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档