草庐IT

if判断

全部标签

c# - 太多 if (obj is thisObj) 语句

我目前有一种方法试图找出它收到的对象是什么。它知道在某个接口(interface)上,例如IService,但我有代码查看它并试图告诉我它是Service1还是Service2。我目前有很多if(objisthisObj)样式语句,什么是使这段代码漂亮的最佳解决方案?这是我所拥有的示例:publicvoidDoSomething(IServiceservice){if(serviceisService1){//DOsomething}if(serviceisService2){//DOsomethingelse}}现在有两个并不是什么坏事,但我正在考虑可能有20多个这样的东西,使用起来

c# - 判断一个字符串中的所有字符是否相同

我有一种情况需要尝试过滤掉假的SSN号码。据我目前所见,如果它们是假的,它们都是相同的数字或123456789。我可以过滤最后一个,但是否有一种简单的方法来确定所有字符是否都相同? 最佳答案 返回(ssn.Distinct().Count()==1) 关于c#-判断一个字符串中的所有字符是否相同,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/16027475/

C# if 语句。内部运作 Q

我刚刚在某些Exchange2010代码中看到了这个代码片段,我想知道是否有人知道为什么程序员会这样做。我从未见过这样格式的If语句。看起来如此倒退,一定有充分的理由吧??if(true==MsgItem.HasAttachments){//Code}我假设它可能对同一事物的各种其他编码方式进行了一些优化;if(MsgItem.HasAttachments){//Code}或if(MsgItem.HasAttachments==true){//Code}这没什么大不了的,我只是好奇。谢谢,迈克更新:感谢您提出的所有有趣的观点。总结似乎是因为遗留编码标准。 最

c# - 在 Mono 和 .NET 之间拆分的编译器 #if 指令

这个问题在这里已经有了答案:HowcanIconditionallycompilemyC#forMonovs.Microsoft.NET?(2个答案)关闭9年前。我需要为Mac上的Mono和PC上的.NET双重编译一个类库。我想做一些小改动,但我希望使用编译器指令拆分代码。有什么建议吗?

c# - 如何判断事件是否来自 C# 中的用户输入?

我有一个带有一些复选框的小窗体,CheckChanged事件的每个复选框都有一个消息处理程序。由于一些复选框依赖于其他复选框,如果一个复选框的选中状态发生变化,它会更改任何相关复选框的选中状态。我发现这会导致在其他复选框上引发事件,但我的问题是每个事件都有一个函数调用,只有当事件来自用户实际单击复选框时才应调用该函数。我想知道如何判断(大概来自发送者或EventArgs)CheckChanged事件是否由鼠标点击引起。悬崖:多个复选框接收CheckChanged事件需要确定事件是否由鼠标点击引发 最佳答案 您可以使用标志来指示是否忽

c# - 如何判断两个相似的乐队名称是否代表同一个乐队?

我目前正在从事一个项目,需要我将我们的乐队和field数据库与许多外部服务相匹配。基本上,我正在寻找确定两个名称是否相同的最佳方法的方向。例如:我们的数据库地点名称-“ThePigandWhiSTLe”服务1-“pig和哨子”服务2-“pig与口哨”等等等等我认为主要区别在于缺少“the”或使用“&”而不是“and”,但也可能存在拼写略有不同和单词顺序不同等问题。在这种情况下通常使用哪些算法/技术,我是否需要过滤噪音词或进行某种拼写检查类型匹配?您在C#中看到过类似的示例吗?更新:如果有人对C#示例感兴趣,可以通过执行googlecodesearchforLevenshteindist

c# - 将 if(x) Foreach() 替换为 Foreach.Where(x)

可能是个愚蠢的问题,但我有很多:if(X){foreach(varYinmyList.Where(z=>z==1){}}在一些代码中构造将其替换为foreach(varYinmyList.Where(z=>X&&z==1){}疯了吗?它的可读性可能较差,但编译器会优化它以使其成为几乎相同的代码吗? 最佳答案 不,您的第一个版本更好更快。当X为真时,第二个版本将为序列中的每个元素计算X。你应该坚持第一个版本。 关于c#-将if(x)Foreach()替换为Foreach.Where(x),

c# - 如何判断对象引用是否为空?

确定对象引用变量是否为null的最佳方法是什么?是下面的吗?MyObjectmyObjVar=null;if(myObjVar==null){//dostuff} 最佳答案 是的,你是对的,如果你想执行任意代码,下面的代码片段是可行的方法:MyObjectmyObjVar;if(myObjVar==null){//dostuff}顺便说一句:您的代码不会像现在这样编译,因为myObjVar在初始化之前被访问。 关于c#-如何判断对象引用是否为空?,我们在StackOverflow上找到一

c# - 这段代码能正确判断两种类型是否相等吗?

我对System.Type和.NET中的实际类类型(如Object或XmlDocument)有点迷糊。.此代码能否正确确定特定对象的类型是否等于我指定的类?'Given"myObject"(unknowntype),andsomeclasstype(let'ssay"MyClass")...IfmyObject.GetType.Equals(MyClass)IfTypeOf(myObject)IsMyClassIfmyObject.GetType()IsMyClass哪个是正确的?如果您可以提供一些关于什么是类标识符与什么是System.Type的信息,则加分。:)注意:这里使用的语言

c# - 如何判断一个实例是某种类型还是任何派生类型

我正在尝试编写验证来检查对象实例是否可以转换为变量类型。对于他们需要提供的对象类型,我有一个Type实例。但是类型可以变化。这基本上就是我想要做的。Objectobj=newobject();Typetyp=typeof(string);//justasample,reallytypisavariableif(objistyp)//thisiswrong"is"doesnotworklikethis{//dosomething}类型对象本身有IsSubClassOf和IsInstanceOfType方法。但我真正想检查的是obj是typ的实例还是从typ派生的任何类。看似简单的问题,但