Tag: C#的

不区分大小写的列表search

我有一个包含一堆string的列表testList 。 我想添加一个新的string到testList只有当它不存在于列表中。 因此,我需要对列表进行不区分大小写的search,并使其高效。 我不能使用Contains因为这没有考虑到套pipe。 性能方面,我也不想使用ToUpper/ToLower 。 我碰到这种方法,这是有效的: if(testList.FindAll(x => x.IndexOf(keyword, StringComparison.OrdinalIgnoreCase) >= 0).Count > 0) Console.WriteLine("Found in list"); 这工作,但它也匹配部分单词。 如果列表包含“山羊”,我不能添加“燕麦”,因为它声称“燕麦”已经在列表中。 有没有办法有效地search名单不区分大小写的方式,其中单词必须完全匹配? 谢谢

未使用的参数在C + + 11

在c + + 03和更早版本中,禁用关于未使用参数的编译器警告,我通常使用这样的代码: #define UNUSED(expr) do { (void)(expr); } while (0) 例如 int main(int argc, char *argv[]) { UNUSED(argc); UNUSED(argv); return 0; } 但是对于c ++来说,macros并不是最佳实践,所以。 有没有更好的解决scheme出现在C ++ 11标准? 我的意思是我可以摆脱macros吗? 感谢所有!

创build或获取特定的SPTimeZone实例

创buildMicrosoft.SharePoint.SPTimeZone的特定实例的最便捷方法如下: SPTimeZone utc = SPRegionalSettings.GlobalTimeZones .OfType<SPTimeZone>() .FirstOrDefault(tz => tz.Information.Bias == 0 && tz.Information.DaylightBias == 0); 这是黑客最好的一个我可以得到… 这对我来说尤其是一个问题,因为我想嘲笑这部分代码进行unit testing,强制它始终返回UTC。 属性GlobalTimeZones似乎依赖于HttpContext.Current或实际的请求 – 我没有在我的unit testing的先决条件… 注:我知道有System.TimeZoneInfo但第三方大会迫使我使用SPTimeZone …

在Visual Studio中设置Embed Interop Types true和false有什么区别?

在Visual Studio中,向项目添加一个引用时,属性窗口有一个选项Embed Inteop Types ,我们应该将它设置为True还是False ? 有什么不同? 由于我们有很多的项目,其中一些项目的参考被设定为False ,其他项目被设定为True ,这完全搞砸了。 而bulid服务器也有相同的警告: “embedded式互操作程序集创build的参考”是什么意思? 因此,我们计划将所有Embed Inteop Types更改为False ,我们将获得哪些风险?

什么时候调用C ++析构函数?

基本问题:程序什么时候在C ++中调用类的析构函数? 我被告知,只要对象超出范围或遭到delete ,就会调用它 更具体的问题: 1)如果对象是通过一个指针创build的,并且该指针稍后被删除或者指定了一个新的地址,那么它指向的对象调用它的析构函数(假设没有其他东西指向它)? 2)在问题1之后,什么定义了什么时候一个对象超出了范围(而不是关于什么时候一个对象离开给定的{block})。 换句话说,什么时候在链表中调用一个析构函数? 3)你是否想要手动调用析构函数?

什么是obj文件夹生成?

可能重复: 什么是obj和bin文件夹(由Visual Studio创build)用于? 任何项目的默认输出path是Visual Studio的bin/Debug ,但我注意到obj文件夹也生成,其中又包含dll和pdb文件。 有人可以告诉我为什么这个文件夹生成?

演员可以明确吗?

当涉及到构造函数时,添加关键字explicit防止热心的编译器在不是程序员的第一意图时创build对象。 这样的机制是否也适用于铸造操作员? struct Foo { operator std::string() const; }; 在这里,例如,我希望能够将Foo投射到一个std::string ,但是我不希望这样的投射隐式发生。

为什么Visual C ++缺乏重构function?

在Visual Studio 2008中使用C ++进行编程时,为什么在使用C#时没有像在重构菜单中看到的那样的function? 我不断地使用Rename ,当它不在时你真的很想念它。 我相信你可以得到这样的插件,但是为什么在使用C ++的时候没有把它集成到IDE中呢? 这是由于在C ++必须parsing的方式的一些问题?

“杂注”这个词来自哪里?

所以我知道什么是编译指令,它是用来做什么的,但是这个词本身的含义是什么? 我已经在代码中多次使用它,但是我从来不知道这个词实际上代表或代表什么。

String.Format – 它是如何工作的以及如何实现自定义格式string

通过String.Format() ,可以用许多不同的方式来格式化DateTime对象。 每当我寻找所需的格式,我需要在互联网上search。 几乎总是我find一个我可以使用的例子。 例如: String.Format("{0:MM/dd/yyyy}", DateTime.Now); // "09/05/2012" 但我不知道它是如何工作的,哪些类支持这些“魔术”附加string。 所以我的问题是: String.Format如何将附加信息MM/dd/yyyy映射到string结果? 所有的Microsoft对象都支持这个function吗? 这是logging在某处吗? 是否有可能做这样的事情: String.Format("{0:MyCustomFormat}", new MyOwnClass())