草庐IT

c# - 你喜欢让你把 "then"放在 "if"之前的语言吗?

我今天在阅读我的一些C#代码时发现了这一行:if(ProgenyList.ItemContainerGenerator.Status!=System.Windows.Controls.Primitives.GeneratorStatus.ContainersGenerated)return;请注意,您无需滚动就可以知道它是一个与ItemContainerGenerator.Status一起使用的“if”语句,但是您不能轻易地判断如果“if”子句的计算结果为“true”,该方法将在该点返回.实际上,我应该将“return”语句单独移动到一行,但这让我想到了首先允许语句的“then”部分的

c# - string.Equals ("string") 和 "String".Equals(string) 有什么区别?

下面两行比较字符串值的代码有什么区别吗stringstr="abc";if(str.Equals("abc"))和if("abc".Equals(str))在第一行中,我在字符串变量上调用equals方法,将其与字符串文字进行比较。第二行反之。仅仅是编码风格的不同,还是编译器处理这两个语句的方式不同。 最佳答案 唯一的区别是,在第一种情况下,当您执行以下操作时:str.Equals("abc")如果str为null,您将在运行时得到一个异常。通过这样做:"abc".Equals(str)如果str为null,您将得到false。

c# - 如何将 "int"分配给对象?

我们如何能够将整数分配给.NET中的对象?引用类型派生自System.Object,值类型派生自System.ValueType。那么,这怎么可能呢? 最佳答案 术语“装箱”非常不透明,但使用调试器很容易将实际发生的事情可视化。编写一个像这样的小控制台模式应用程序:usingSystem;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){intvalue=42;objectobj=value;}//在指定位置设置断点,然后按F5。当断点命中时

c# - VS 如何编译控制台应用程序以显示 "Press any key to continue"?

当我开发C#控制台应用程序(将在服务器上运行)并使用VisualStudio运行它时,我在程序终止前收到“按任意键继续”消息。但是,当我使用CSC手动编译完全相同的C#代码文件时,我的程序没有显示该消息并且它在完成其逻辑后立即终止。有谁知道我如何在不使用VS且不更改C#代码或添加ReadLine()的情况下编译代码时实现相同的功能?更新:我学习C#时曾出现过相同的消息,我曾经将TextPad与CSC一起使用,并且该消息过去常常在不添加任何Write(Line)/Read(Line)调用的情况下出现 最佳答案 这与编译器无关-如果您按

c# - 如何在不使其成为转义序列的情况下在字符串中使用 "\"- C#?

我确定这是我不知道的非常基本的东西,但是我如何让它不将“\”识别为字符串中的转义序列我试图输入一个路径,它认为这是一个转义序列 最佳答案 您可以使用VerbatimStringLiterals://Initializewitharegularstringliteral.stringoldPath="c:\\ProgramFiles\\MicrosoftVisualStudio8.0";//Initializewithaverbatimstringliteral.stringnewPath=@"c:\ProgramFiles\Micr

c# - 将大括号与单行 "if"语句的语句放在同一行是否是一种错误的形式?

所以我知道总是在if、for等中包含花括号被认为是一种很好的做法,即使如果只有一个后续语句它们是可选的,因为它更容易不小心做类似的事情:if(something==true)DoSomething();DoSomethingElse();如果不放大括号,快速编辑代码时。但是像这样的事情呢:if(something==true){DoSomething();}这样你仍然会占用更少的行(IMO提高了可读性)但仍然不太可能从上面不小心犯错误?我问是因为我不相信我以前见过这种风格的if或循环,但我确实看到它用于C#属性中的getter和setter,例如:publicstringName{ge

c# - Azure AD 异常 - AADSTS50105 - "The signed in user is not assigned to a role for the application"

我正在使用AzureAD为ASP.NETWebAPI2RESTAPI设置身份验证。我希望所有客户端都能够使用用户名和密码通过RESTAPI进行身份验证。我已经设置了AzureAD(下面是完整的步骤,但本质上是-创建目录、添加用户、添加应用程序、在list中向应用程序添加角色、将用户分配给应用程序)。但是,当我尝试通过控制台应用程序(底部的完整代码)进行测试时,出现异常:类型为“Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException”的未处理异常发生在Microsoft.IdentityModel.Clie

c# - 将空参数传递给 SignalR 客户端代理时为 "Value cannot be null"

使用SignalR(v2.0.2)我遇到了这个异常:Valuecannotbenull.Parametername:oatNewtonsoft.Json.Utilities.ValidationUtils.ArgumentNotNull(Objectvalue,StringparameterName)atNewtonsoft.Json.Linq.JToken.FromObjectInternal(Objecto,JsonSerializerjsonSerializer)atNewtonsoft.Json.Linq.JToken.FromObject(Objecto,JsonSerial

c# - 是否可以将 MongoDB 的 "ISODate"字段反序列化为 JToken (C#)?

范围:我正在写一个setoftools帮助人们在他们的MongoDB数据库上运行常见操作,“导出”数据就是其中之一。目前我支持完整的JSON导出和“CSV”,但后者更棘手。导出工具允许使用“ConfigFile”指定哪些字段将被反序列化(来自BsonDocument),而不关心它们的类型。目前大多数类型都可以使用,但“ISO”日期仍然让我头疼。动态反序列化目前我依赖JObjects处理“Json”文档的解析,就像这样://JsonWriterSettings-Toavoidproblemswith10GentypesvarjsonSettings=newJsonWriterSettin

c# - 有没有办法以编程方式设置 "UserChoice"注册表项以接管文件类型关联?

我一直在尝试找到一种方法来更改默认文件关联Windows7中的特定文件扩展名。我有一个用于查看.tif的应用程序如果它不是该文件的默认查看器,我想提示用户的文件类型。如果他们选择将其设为默认值,我想覆盖当前的默认查看器。如果没有安装其他查看器,这将正常工作系统。当用户选择了另一个查看器时,我无法在此处更改控制它的注册表项:HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tif\UserChoiceIhavescouredthewebtryingtofindsomeonethathasdonethis,b