首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么CLS不兼容?

为什么CLS不兼容?
EN

Stack Overflow用户
提问于 2010-04-14 21:52:45
回答 1查看 1.7K关注 0票数 4

我有以下接口:

代码语言:javascript
复制
public interface ITemplateItem
{
    int Id { get; set; }
    String Name { get; set; }
    String Text { get; set; }
    int  CategoryId { get; set; }
    int  Typ { get; set; }
}

public interface ITemplateCategory
{
    int Id { get; set; }
    String Name { get; set; }

    List<ITemplateItem> TemplateItems { get; set; }
    void Add(ITemplateItem item);
    void Remove(ITemplateItem item);
    ITemplateItem CreateTemplateItem();
}

我的ITemplateItem实现如下所示:

代码语言:javascript
复制
public class MyTemplateItem : ITemplateItem
{
    #region ITemplateItem Member
    public int Id { get; set; }
    public String Name { get; set; }
    public String Text { get; set; }
    public int CategoryId { get; set; }
    public int Typ { get; set; }
    #endregion
}

但是对于ITemplateCategory实现,编译器告诉我我的类不符合CLS。

代码语言:javascript
复制
public class MyTemplateCategory : ITemplateCategory
{
    #region ITemplateCategory Member
    public int Id { get; set; }
    public String Name { get; set; }

    // Warning: type of TemplateItems not CLS-Compliant
    public List<ITemplateItem> TemplateItems { get; set; } 

    // Warning: Argument not CLS-Compliant
    public void Add(ITemplateItem item)
    {
        throw new NotImplementedException();
    }

    // Warning: Argument not CLS-Compliant
    public void Remove(ITemplateItem item)
    {
        throw new NotImplementedException();
    }

    // Warning: Return type not CLS-Compliant
    public ITemplateItem CreateTemplateItem() 
    {
        throw new NotImplementedException();
    }
    #endregion
}

好的,

我可以忽略这些警告,或者通过向我的类添加CLSCompliant(false)属性来关闭它们。但我很好奇为什么会发生这种情况。特别是因为编译器不会抱怨接口本身。

一般情况下,公开接口的类会发生这种情况吗?还是我只是使用了禁止的关键字?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-14 21:56:35

它们是否碰巧在不同的程序集中?ITemplateItem是否在一个不自称是CLSCompliant的程序集中?我认为这可以解释这个问题-在这种情况下,只需将程序集设置为CLSCompliant -或者甚至可以只使用ITemplateItem

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2637903

复制
相关文章

相似问题

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