草庐IT

c# - 我们什么时候必须在 C# 中使用 checked 运算符?

在C#中什么时候必须使用checked运算符?是不是只适合异常处理? 最佳答案 您可以使用checked来防止表达式中的(静默的)溢出。当您知道可能会发生无害溢出时,请使用unchecked。您可以在不想依赖默认(项目范围)编译器设置的地方同时使用两者。这两种形式都很少见,但在进行关键整数运算时,值得考虑可能的溢出。另请注意,它们有两种形式:x=unchecked(x+1);//(expression)unchecked{x=x+1;}//{statement(s)} 关于c#-我们什么

c# - 我们什么时候为字典执行 GetHashCode()?

我已将Dictionary(TKey,TValue)用于多种用途。但是我没有遇到任何实现GetHashCode()的场景,我认为这是因为我的键是主要类型,如int和string。我很想知道应该使用自定义对象作为键并因此实现方法GetHashCode()Equals()等的场景(真实世界的示例)。而且,使用自定义对象作为键是否需要实现这些功能? 最佳答案 只要默认Object.Equals,您就应该覆盖Equals和GetHashCode(引用相等性测试)是不够的。例如,当您的键类型是自定义类型并且您希望两个键被视为相等时,即使它们不

c# - 我们如何在设置和部署项目中设置产品名称、公司名称等?

在我的Windows应用程序中,我在程序集中设置了标题、产品名称和公司名称。我向解决方案添加了一个安装和部署项目,并向其中添加了Windows应用程序的主要输出。当我启动安装程序时,它没有获取标题、产品名称和公司名称。我做错了什么/忘记了什么? 最佳答案 在解决方案资源管理器中,单击您的设置和部署项目,然后单击属性选项卡(或直接按F4)。您正在寻找的设置就在那里。 关于c#-我们如何在设置和部署项目中设置产品名称、公司名称等?,我们在StackOverflow上找到一个类似的问题:

c# - 为什么我们需要 C# 中的属性

你能告诉我C#中属性的确切用法是什么吗?我的意思是实用的解释在我们的项目中,我们使用的属性如下//////columnorder///protectedintm_order;//////Get/Setcolumnorder///publicintOrder{get{returnm_order;}set{m_order=value;}}//////constructor//////columnname///columnwidth///columnorderpublicViewColumn(stringname,intwidth,intorder){////TODO:Addconstruc

c# - 为什么我们使用@Master类型?

如果我们有母版页和内容页。那么内容页@Page指令看起来像所以,为了访问内容页中的母版页控件,我们必须使用所以,我的问题是,当我们已经在@page指令中定义此内容页位于母版页(此处--Site1.Master)中时,为什么我们使用@MasterType指令 最佳答案 来自MicrosoftDocs您正在定义Master属性的类型,它允许您访问MasterPage派生类的属性。ProvidesawaytocreateastronglytypedreferencetotheASP.NETmasterpagewhenthemasterpa

c# - 我们在 MS-Access 中有交易吗?

我正在使用C#.NET和MS-Access开发一个小型桌面应用程序。我以前没有任何MS-Access经验。我想知道我们是否可以在Ms-Access中使用事务。我有下面提到的情况。InsertinTbl1InsertinTbl2我只想在tbl1插入成功后才插入tbl2。如果在tbl2中插入时出现异常,我想回滚tbl1中的插入。我知道这可以在sql-server中轻松实现,但是在ms-access的情况下,我应该如何管理它。请帮助,提前致谢。 最佳答案 实际上没有人在答案中为您提供任何代码示例,甚至没有引用示例(尽管Access帮助文件

c# - 我们可以使用 Kudu 将 C# 7 Web 应用程序部署到 Azure 吗?

自从发布了VisualStudio2017并且我们可以使用新的C#7功能后,我预计这将在AzureWeb应用程序上部署时发挥作用。不幸的是,我们在使用持续部署(kudugitdeploy)时看到编译错误,因此Azure似乎还不支持新的工具链。我们现在可以做些什么来让它工作(除了直接发布程序集之外)? 最佳答案 因为我们在Azure中还没有msbuild15。如果您想通过持续集成使用c#7功能,您可能需要一些解决方法对于dotnet核心网络解决方案,您可以开箱即用在Azure中构建它。(它使用自己的dotnetmsbuild.dll)

c# - 为什么我们使用虚拟和覆盖?

如果不使用override和virtual效果一样,为什么还要使用override和virtual?示例1:classBaseClass{publicvirtualstringcall(){return"A";}}classDerivedClass:BaseClass{publicoverridestringcall(){return"B";}}输出:B示例2:classBaseClass{publicstringcall(){return"A";}}classDerivedClass:BaseClass{publicstringcall(){return"B";}}输出还是一样:输出

c# - 在 switch case 中,如果我们将 "default"写为任何单词或单个字母,它不会抛出错误

在switch中,如果我们写任何单词或单个字母而不是default,它不会抛出错误。例如switch(10){case1:break;hello:break;}它运行时没有抛出错误。谁能解释一下这是如何工作的? 最佳答案 它正在编译,因为hello:是一个标签,因此可以作为goto的目的地。当我编译这个时,我收到了关于未引用标签的警告(因为我没有转到)这是您可以放入LINQPad的示例-您会注意到它同时打印“1”和“hello”:switch(1){case1:"1".Dump();gotohello;break;hello:"he

c# - 我们在哪里使用 Debug/Trace 语句

我使用C#(使用VSIDE)进行开发。我对调试/跟踪语句感到困惑。我们在哪里以及为什么使用这些语句?我经常在其他开发人员的源代码中看到这些。谁能指点一下? 最佳答案 Debug语句仅出现在Debug版本中。Trace语句存在于调试和发布版本中。为了调试或检查,您可以将Debug和Trace语句放在要输出某些值的地方。这篇MS支持文章可能会引起您的兴趣:HowtotraceanddebuginVisualC#TheTraceclassroutesmessagestolisteners:classesthataredesignedtoa