草庐IT

IS_STRING

全部标签

c# - ReSharper 如何知道 "Expression is always true"?

检查以下代码:privatevoidFoo(objectbar){Typetype=bar.GetType();if(type!=null)//Expressionisalwaystrue{}}ReSharper声称type永远不会是null。这对我来说很明显,因为bar总是有一个类型,但ReSharper是如何知道的?它怎么知道方法的结果永远不会是null?Type不是结构,所以不可能是这样。而如果这个方法是我写的,那么返回值肯定可以是null(不一定是GetType,而是别的什么)。ReSharper是否足够聪明,知道只有那个特定方法的结果永远不会是null?(就像有一个永远不会返

c# - string.IsNullOrEmpty(myString) 或 string.IsNullOrWhiteSpace(myString) 是否违反 SRP 规则?

如问题所示,正如函数名称所示,我们正在使用像IsNullOrEmpty或IsNullOrWhiteSpace这样的字符串函数,它们做的不止一项工作,这是否违反了SRP?它不应该是string.isValid(EnumtypeofValidation)而不是使用策略模式来选择正确的策略来验证。或者在实用程序类或静态类中违反SRP是否完全可以。 最佳答案 SRP说一个函数或类应该只有一个改变的理由。改变的理由是什么?更改的原因是请求更改的用户。因此,一个类或函数应该只有一个请求更改的用户。现在,一个先进行一些计算然后进行一些格式化的函数

c# - System.String 的内部结构

我用反射查看了System.String的内部字段,发现了三个字段:m_arrayLengthm_stringLengthm_firstChar我不明白这是怎么回事。m_arrayLength是一些数组的长度。这个数组在哪里?它显然不是字符串类的成员字段。m_stringLength是有道理的。它是字符串的长度。m_firstChar是字符串中的第一个字符。所以我的问题是字符串的其余字符在哪里?如果不在字符串类中,字符串的内容存储在哪里? 最佳答案 第一个字符提供对缓冲区中第一个字符的内存地址的访问(通过&m_firstChar)。

c# - 错误 : Unable to evaluate expression because the code is optimized

我在我的asp.net应用程序中收到一个错误“无法评估表达式,因为代码已优化或native框架位于调用堆栈的顶部。”protectedvoidbtnCustomerProfile_Click(objectsender,EventArgse){try{Server.Transfer("CustomerProfile.aspx");}catch(Exceptionex){Response.Write(ex.ToString());}finally{}}搜索SO后,看到类似的帖子大多涉及response.redirect。我的代码使用的是server.transfer,我的应用程序也使用母版

c# - Visual Studio 2008 : Step to next line is very slow when debugging managed code

当通过F10逐行单步执行我的C#代码时,调试器需要一秒钟多的时间才能到达下一行。我试过删除所有监视和断点,但这没有任何区别。这正常吗?很长一段时间以来都是这样,所以我什至不记得这是不是更好了。我的开发计算机是一台四核机器,没有后台任务事件并且有足够的RAM。如果不正常,我还能尝试什么?它仍然可以使用,但是一个不那么迟钝的用户界面会很棒...... 最佳答案 可能发生的情况是,您在调用堆栈框架中有一个变量,该变量具有昂贵的.ToString方法。在2008年,无论窗口是否实际可见,调用堆栈窗口的数据都会在每一步重建。构建此窗口的一部分

c# - 如何序列化具有 Dictionary<string,object> 属性的对象?

在下面的示例代码中,我得到了这个错误:ElementTestSerializeDictionary123.Customer.CustomPropertiesvomTypSystem.Collections.Generic.Dictionary`2[[System.String,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089],[System.Object,mscorlib,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934

c# - 无法将类型 'string' 隐式转换为 'System.DateTime'

我正在尝试从字符串转换为DataTime,但出现错误。我正在使用VS2003,.NETFramework1.1DateTimedt=Convert.ToDateTime("11/23/2010");strings2=dt.ToString("dd-MM-yyyy");DateTimedtnew=Convert.ToString(s2);Cannotimplicitlyconverttype'string'to'System.DateTime'任何人都可以帮助我解决错误的语法。 最佳答案 stringinput="21-12-2010

c# - 为什么 String 类没有无参数构造函数?

int和object有一个无参数的构造函数。为什么不是string? 最佳答案 因为这样做没有意义。string是不可变的。创建一个空的string是没有用的。MSDN:Stringsareimmutable--thecontentsofastringobjectcannotbechangedaftertheobjectiscreated,althoughthesyntaxmakesitappearasifyoucandothis.正如JonathanLonowski所指出的,我们有string.Empty。

c# - Fluent Assertions 能否对 IEnumerable<string> 使用不区分字符串的比较?

我有一对列表,我正在尝试使用FluentAssertions进行比较。我可以很容易地编写比较代码,但我想使用FluentAssertions,这样我就可以获得在测试失败消息中显示的原因。到目前为止,我所看到的一切似乎都在使用默认的Object.Equals比较,它区分大小写。我似乎无法将IComparer传递给Equal或Contains方法,还有其他方法吗?[TestMethod()]publicvoidfoo(){varactual=newList{"ONE","TWO","THREE","FOUR"};varexpected=newList{"One","Two","Three"

c# - SerializationException 类型 "is not marked as serializable"- 但它是

在Windows窗体、.NETFramework4.0中,我正在尝试序列化我编写的类的实例。该类被标记为可序列化,但使用该类的表单(显然)不是。我不想序列化表单的实例。我想序列化我在类里面的数据。我类中的所有内容都标记为可序列化,那么为什么我仍然收到SerializationException?(点击>>HERE在新窗口中打开全尺寸图片)更新:这是我的BrazierCuttoff类和相关部分:[Serializable()]publicclassBrazierCuttoff:IEquatable{privateintqty;privateint[]joint,pass,shift;pr