首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#扩展类在Visual 2013中不工作,2015年工作

C#扩展类在Visual 2013中不工作,2015年工作
EN

Stack Overflow用户
提问于 2016-01-04 17:31:05
回答 1查看 481关注 0票数 1

代码的目的是允许我推翻系统全球化的几个月的翻译,因为我无法获得伊斯兰月的直接翻译。元组列表Ext允许我使用清晰的语法存储外来月的短名称和长名称。

我的元组列表扩展类:

代码语言:javascript
复制
using System;
using System.Collections.Generic;
namespace Business.Extensions
{
    public static class TupleListExt
    {
        public static void Add<T1, T2>(this IList<Tuple<T1, T2>> list,
            T1 item1, T2 item2)
        {
            list.Add(Tuple.Create(item1, item2));
        }
    }
}

使用此扩展:

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using Business.Extensions;

public List<Tuple<string, string>> Months
        {
            get
            {
                return new List<Tuple<string, string>>{
                    {"",""}, // 0 index
                    {"يناير",   "يناير"}, //January, Jan
                    {"فبراير",  "فبراير"}, //Feb
                    {"مارس",    "مارس"}, // Mar
                    {"إبريل",   "إبريل"}, //April
                    {"مايو",    "مايو"}, // May
                    {"يونيو",   "يونيو"}, //June
                    {"يوليو",   "يوليو"}, //July
                    {"أغسطس",   "أغسطس"}, //Aug
                    {"سبتمبر",  "سبتمبر"}, //Sept
                    {"أكتوبر",  "أكتوبر"}, //Oct
                    {"نوفمبر",  "نوفمبر"}, //Nov
                    {"ديسمبر",  "ديسمبر"}, //Dec
                };
            }
        }

这在Visual 2015中非常有用,而且代码在生产中可以正常工作,但是我有其他开发人员使用VS 2013与我一起工作,而且它无法在此错误的情况下构建:

方法'Add‘没有过载,只需2个参数

经过2015年的建设,2013年的建设似乎还不错,但当我再次触摸文件时,它就会破裂。

我假设这与解析名称空间扩展类型Add有关,但我对C#还不熟悉,还被困住了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-04 17:45:31

您的代码片段使用了VS 2013中没有的C# 6特性。也就是说,它依赖于对C#编译器的修正,即 from collection initializers

当我们第一次在C#中实现集合初始化时,被调用的Add方法不能是扩展方法。VB从一开始就得到了它,但是我们似乎在C#中忘记了它。这一点已经解决了:从集合初始化器生成的代码现在将愉快地调用一个名为Add的扩展方法。它并不是一个很好的特性,但它偶尔会很有用,结果在新编译器中实现了它,相当于删除了阻止它的检查。

不幸的是,解决这个问题的方法是在初始化器中显式调用Tuple.Create

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

https://stackoverflow.com/questions/34596613

复制
相关文章

相似问题

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