草庐IT

while语句

全部标签

c# - 序列化和 Yield 语句

是否可以序列化包含yield语句的方法(或包含此类方法的类),以便在重新水化该类时,保留生成的迭代器的内部状态? 最佳答案 是的,你可以做到这一点。注意事项。可以在此处找到使用yield序列化方法、反序列化和继续的示例:http://www.agilekiwi.com/dotnet/CountingDemo.cs(WebArchiveLink)。一般来说,尝试序列化而不做一些额外的工作会失败。这是因为编译器生成的类没有用Serializable属性标记。但是,您可以解决这个问题。我会注意到它们没有标记为可序列化的原因是因为它们是一个

c# - 使用 lock 语句在 C# 中递归/嵌套锁定

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Re-entrantlocksinC#我在StackOverflow和MSDN上看过这里,不敢相信我在互联网上找不到这个问题。假设我有一个包含私有(private)成员的类,我想通过多个公共(public)方法访问该成员。这些公共(public)方法将被不同的线程调用,因此需要同步。publicclassMyClass{privateObjectSomeSharedData=newObject();publicvoidMethodA(){lock(SomeSharedData){//dosomethingMe

c# - 编译器对 switch 语句的看法是什么?

再次受到-5问题的启发!IsemptycaseofswitchinC#combinedwiththenextnon-emptyone?我阅读了[thiscomment]的@Quartermeister并感到惊讶!那么为什么这个可以编译switch(1){case2:}但这不是。inti;switch(i=1){case2://Controlcannotfallthroughfromonecaselabel('case2:')toanother}这都不是switch(2){case2://Controlcannotfallthroughfromonecaselabel('case2:')

c# - C# 中的(普通)throw 语句会导致异常吗?

问题:C#中的普通throw语句本身是否会导致新的异常?请注意,我问这个问题是出于好奇,而不是因为我有任何实际或现实世界的情况会很重要。另请注意,我的直觉和经验告诉我答案是“否”,但我希望以某种方式验证该答案(请参阅到目前为止我尝试过的资源)。下面是一些示例代码来说明我的问题:try{intx=0,y=1/x;}catch(ExceptionouterException){try{throw;}catch(ExceptioninnerException){//Q:DoesthisAsserteverfail??System.Diagnostics.Debug.Assert(outerE

c# - 为什么 null 语句 ToString() 返回一个空字符串?

这个问题在这里已经有了答案:Whydoes.ToString()onanullstringcauseanullerror,when.ToString()worksfineonanullableintwithnullvalue?(8个答案)关闭9年前。我只是想知道下两个语句之间的区别是什么:导致NullReferenceException-没关系。objecttest1=default(int?);objectresult=test1.ToString();返回一个空字符串"",为什么?objecttest2=default(int?).ToString();这与2相同。int?test

C# 内联检查语句不起作用

我有两种测试方法。第一个工作正常。第二个不会抛出异常,但它应该抛出异常。为什么第二个不抛出异常?[TestMethod][ExpectedException(typeof(OverflowException))]publicvoidLongToInt_OverflowWithCheckedBlock(){checked{intmaxValue=2147483647;longlongValue=(maxValue+1);intintValue=(int)longValue;}}[TestMethod][ExpectedException(typeof(OverflowException)

c# - 无法连接到 VS2012 中的 localDB – "A network-related or instance-specific error occurred while establishing a connection to SQL Server..."

这很奇怪,因为我能够使用相同的连接字符串通过SSMS2008R2连接到localDB("DataSource=(LocalDB)\v11.0;IntegratedSecurity=true")只有C#代码无法连接,我尝试使用ConnectTimeout=60增加登录时间,但没有成功。我还尝试指定数据库InitialCatalog=其中是我通过ssms在localdb上创建的。关于为什么没有连接的任何指示? 最佳答案 有没有可能是因为您忘记对反斜杠进行两次转义?你试过这个吗:"DataSource=(LocalDB)\\v11.0;I

c# - 复选框的 If 语句

我想知道如何编写if语句来查看一个或另一个复选框是否被选中。我有两个复选框。我想让它检查复选框1是否被选中,复选框2是否为空,然后调用此函数,如果复选框2被选中,复选框1是否为空,则调用另一个函数。IF语句非常糟糕,不确定如何将复选框转换为可读值。 最佳答案 我假设您的意思是未检查。我手边没有C#编译器,但是:if(checkbox1.Checked&&!checkbox2.Checked){}elseif(!checkbox1.Checked&&checkbox2.Checked){}

c# - 表达式 Lambda 与语句 Lambda

从根本上说,单行表达式lambda和语句lambda之间有什么区别吗?以下面的代码为例:privatedelegatevoidMyDelegate();protectedstaticvoidMain(){MyDelegatemyDelegate1=()=>Console.WriteLine("Test1");MyDelegatemyDelegate2=()=>{Console.WriteLine("Test2");};myDelegate1();myDelegate2();Console.ReadKey();}虽然我更喜欢第一个,因为我发现括号很难看,但两者之间有什么不同吗(除了关于多

c# - 是否有为 using 语句实现 IDisposable 的公共(public)对象列表?

我想知道是否有某种备忘单可以让对象与using语句配合得很好...SQLConnection、MemoryStream等更进一步,如果能展示其他“拼图碎片”就更好了,比如您应该如何在using语句括号结束之前实际调用connection.Close()。有这样的东西吗?如果没有,也许我们应该做一个。 最佳答案 也许可以浏览一下我在http://www.lancemay.com/2010/01/idisposable-cheat-sheet/上的帖子.不确定这是否是您要查找的内容,但根据最初的问题,听起来可能是。