草庐IT

Acts_as_Inviteable

全部标签

C# 类型转换和 as 之间的区别?

这个问题在这里已经有了答案:关闭13年前。PossibleDuplicate:Whatisthedifferencebetweenthefollowingcastsinc#?在C#中,转换对象和使用as关键字有区别吗?希望这段代码能说明我的意思...Stringtext="Hellohello";Objectobj=text;StringoriginalCast=((String)obj).ToUpper();StringoriginalAs=(objasString).ToUpper();谢谢:)

C# 4.0 : Can I use a Color as an optional parameter with a default value?

这个问题在这里已经有了答案:C#4.0:CanIuseaTimeSpanasanoptionalparameterwithadefaultvalue?(8个答案)关闭9年前。publicvoidlog(Stringmsg,Colorc=Color.black){loggerText.ForeColor=c;loggerText.AppendText("\n"+msg);}这会导致c必须是编译时常量的错误。我已经阅读了一些内容,大多数示例都在处理字符串和整数。我发现我可以使用colorconverter类,但我不确定它是否非常有效。有没有办法将基本颜色作为可选参数传递?publicvoi

c# - C#中 "As"关键字有什么意义

来自文档:Theasoperatorislikeacastexceptthatityieldsnullonconversionfailureinsteadofraisinganexception.Moreformally,anexpressionoftheform:expressionastypeisequivalentto:expressionistype?(type)expression:(type)nullexceptthatexpressionisevaluatedonlyonce.那么,您为什么不选择以一种或另一种方式进行呢?为什么有两种类型转换系统?

c# - C#中.ToString和 "as string"的区别

使用以下两个语句有什么区别?在我看来,第一个“作为字符串”是类型转换,而第二个ToString是对将输入转换为字符串的方法的实际调用?只是寻找一些见解(如果有的话)。Page.Theme=Session["SessionTheme"]asstring;Page.Theme=Session["SessionTheme"].ToString(); 最佳答案 如果Session["SessionTheme"]不是string,asstring将返回null。.ToString()将尝试通过调用对象的ToString()方法将任何其他类型转

C# 4.0 : Can I use a TimeSpan as an optional parameter with a default value?

这两个都会产生一个错误,指出它们必须是编译时常量:voidFoo(TimeSpanspan=TimeSpan.FromSeconds(2.0))voidFoo(TimeSpanspan=newTimeSpan(2000))首先,有人能解释一下为什么这些值不能在编译时确定吗?有没有办法为可选的TimeSpan对象指定默认值? 最佳答案 您可以通过更改签名轻松解决此问题。voidFoo(TimeSpan?span=null){if(span==null){span=TimeSpan.FromSeconds(2);}...}我应该详细说明

C# "as" Actor 与经典 Actor

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Castingvsusingthe‘as’keywordintheCLR我最近了解到一种不同的转换方式。而不是使用SomeClasssomeObject=(SomeClass)obj;可以使用这种语法:SomeClasssomeObject=objasSomeClass;如果obj不是SomeClass,它似乎返回null,而不是抛出类转换异常。我看到如果转换失败这会导致NullReferenceException并且我尝试访问someObject变量。所以我想知道这种方法背后的基本原理是什么?为什么应该使用这

c# - 为什么 "Set as Startup"选项存储在 suo 文件而不是 sln 文件中?

似乎此设置应该存储在解决方案文件中,以便在所有用户和部分源代码控制之间共享。由于我们没有checkinsuo文件,每个用户都必须单独设置,这看起来很奇怪。 最佳答案 绝对有必要让每个人都可以自己定义自己的StartUpProject,如Jonhasalreadysaid.但是有一个专用的默认值会很棒,据我所知,这是可能的!如果您的解决方案目录中没有.suo文件,VisualStudio会选择.sln文件中的第一个项目作为默认启动项目。关闭VisualStudio并在您喜欢的文本编辑器中打开.sln文件。从第4行开始,您会看到所有项目

c# - "as"和可空类型的性能惊喜

我只是修改了C#深入探讨可空类型的第4章,并添加了有关使用“as”运算符的部分,它允许您编写:objecto=...;int?x=oasint?;if(x.HasValue){...//Usex.Valueinhere}我认为这真的很巧妙,并且它可以提高性能超过C#1等效项,使用“is”后跟强制转换-毕竟,这样我们只需要请求动态类型检查一次,然后简单的值检查。然而,情况似乎并非如此。我在下面包含了一个示例测试应用程序,它基本上对对象数组中的所有整数求和-但该数组包含大量空引用和字符串引用以及装箱整数。该基准衡量您必须在C#1中使用的代码,使用“as”运算符的代码,以及仅用于启动LINQ

c# - 即使没有空检查,使用 "as"而不是强制转换是否有意义?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。在开发博客、在线代码示例和(最近)甚至一本书中,我总是对这样的代码磕磕绊绊:vary=xasT;y.SomeMethod();或者,更糟的是:(xasT).SomeMethod();这对我来说没有意义。如果您确定x是T类型,您应该使用直接转换:(T)x。如果您不确定,可以使用as但需要在执行某些操作之前检查null。上面代码所做的就是将一个(有用的)In

c# - 强制转换与在 CLR 中使用 'as' 关键字

在编程接口(interface)时,我发现我正在做很多强制转换或对象类型转换。这两种转换方法有区别吗?如果是这样,是否存在成本差异或这如何影响我的计划?publicinterfaceIMyInterface{voidAMethod();}publicclassMyClass:IMyInterface{publicvoidAMethod(){//Dowork}//Otherhelpermethods....}publicclassImplementation{IMyInterface_MyObj;MyClass_myCls1;MyClass_myCls2;publicImplementa