C#/.NET

“x 为空"和“x 为空"有什么区别?和“x == null"?

在 C# 7 中,我们可以使用 if (x is null) return; 代替 if (x == null) return; 与旧方法相比,使用新方法(以前的示例)有什么优势吗? 语义有什么不同吗? 这只是品味问题吗?如果没有,我什么时候应该使用一个? 参考:C# 7.0 的新增功能. 解决方案 更新: Roslyn 编译器已更新,使两个运算符的行为在没有重载 ..
发布时间:2022-01-06 22:25:34 C#/.NET

深度空检查,有没有更好的方法?

注意:这个问题是在引入 C# 6/Visual Studio 2015 中的 .? 运算符. 我们都去过那里,我们有一些像 cake.frosting.berries.loader 这样的深层属性,我们需要检查它是否为空,所以没有例外.做的方法是使用短路if语句 if (cake != null && cake.frosting != null && cake.frosting.berri ..
发布时间:2022-01-06 22:22:43 C#/.NET

Nullable.HasValue 或 Nullable 之间有什么区别?!= 空?

我总是使用 Nullable 因为我喜欢它的语义.但是,最近我正在研究其他人的现有代码库,他们使用了 Nullable!= null 专门代替. 是否有理由使用一种而不是另一种,还是纯粹是偏好? int?一个;如果(a.HasValue)//... 对比 int?乙;如果 (b != null)//... 解决方案 编译器用对 HasValue 的调用替换了空比较,所以 ..
发布时间:2022-01-06 22:22:26 C#/.NET

C# 可以将值类型与 null 进行比较

我今天遇到了这个问题,不知道为什么 C# 编译器没有抛出错误. Int32 x = 1;如果(x == 空){Console.WriteLine("这是什么?");} 我很困惑 x 怎么可能为空.特别是因为这个赋值肯定会引发编译器错误: Int32 x = null; x 是否有可能变为空值,是微软决定不把这个检查放入编译器,还是完全错过了? 更新:在弄乱了写这篇文章的代码后,编译器 ..
发布时间:2022-01-06 22:21:50 C#/.NET

null 和 System.DBNull.Value 有什么区别?

null 和 System.DBNull.Value 之间有什么区别吗?如果是,那是什么? 我现在注意到这种行为 - while (rdr.Read()){if (rdr["Id"] != null)//if (rdr["Id"] != System.DBNull.Value){int x = Convert.ToInt32(rdr["Id"]);}} 虽然我使用 sql 数据读取器从数 ..
发布时间:2022-01-06 22:19:53 C#/.NET

从 C# 应用程序登录到 joomla

我也使用多种方法登录到 joomla 管理面板.但返回值与登录页面相同.即使用户名和密码正确. 示例: WebClient Client = new WebClient();System.Collections.Specialized.NameValueCollection 集合 =新 System.Collections.Specialized.NameValueCollection() ..
发布时间:2022-01-06 21:51:22 C#/.NET

Joomla 的 ASP.NET 版本

有没有人发现/使用过类似于 Joomla 的 ASP.NET 应用程序? 我需要在 Windows Server 上设置一个快速而肮脏的 CMS,而我们的客户不希望我们使用 ASP.NET 以外的其他东西. 解决方案 一位朋友告诉我 Umbraco 是您在 CMS 中想要的一切(并且 Nathan 在他的回答中包含在列表中).这个建议来自一个多年来构建了多个 CMS 解决方案的人,在对其 ..
发布时间:2022-01-06 21:30:01 C#/.NET

TransactionScope 和事务

在我的 C# 代码中,我使用的是 TransactionScope,因为我被告知不要依赖我的 sql 程序员将始终使用事务并且我们负责和 yada yada. 说到这里 看起来像TransactionScope对象在SqlTransaction之前回滚了?这可能吗?如果可能,在事务中包装 TransactionScope 的正确方法是什么. 这里是sql测试 CREATE PR ..
发布时间:2022-01-06 21:01:33 C#/.NET

SqlConnection 如何管理IsolationLevel?

这篇MSDN文章指出: 隔离级别具有连接范围范围,一旦设置为连接使用 SET 事务隔离LEVEL 声明,它仍然有效直到连接关闭或设置了另一个隔离级别.当一个连接关闭并返回池,隔离级别从最后设置事务隔离级别声明被保留.随后的连接重用池连接使用隔离级别这在当时有效连接已池化. SqlConnection 类没有可以持有隔离级别的成员.那么连接如何知道运行在什么隔离级别??? 我问这个 ..
发布时间:2022-01-06 20:56:14 C#/.NET

事务范围超时 10 分钟

我在 C# 中有一个长期运行的 TransactionScope.我告诉示波器它应该有很长的时间跨度,但我仍然超时.什么可能导致这种情况? TransactionOptions transactionOptions = new TransactionOptions();transactionOptions.IsolationLevel = IsolationLevel.ReadCommitted ..
发布时间:2022-01-06 20:53:46 C#/.NET

涉及多个表的多个事务的无间隙序列

我有一个要求(根据法律)在不同的桌子上有一个无间隙的数字.ID 可以有漏洞,但序列不能. 这是我必须在 C# 代码或数据库(Postgres、MS SQL 和 Oracle)中解决的问题. 这是我的问题: 开始事务1开始事务 2在事务 1 中的表“投资组合"上插入行获取列 Portfolio_Sequence (1) 的下一个数字在事务 1 中的表“文档"上插入行获取列 Docume ..
发布时间:2022-01-06 20:51:46 C#/.NET

在 C# 和 Windows 中写入事务性文件?

我有一个数据文件,有时我需要对文件进行更改.更改包括在多个地方更改信息.例如,更改文件末尾附近的一些数据以及更改开头附近的一些信息.我希望两个单独的写入要么都成功,要么都失败,否则它会处于不确定状态并被有效破坏.在 .NET 或一般情况下,是否有针对此方案的任何内置支持? 如果不是那么其他人如何解决这个问题?Windows 上的数据库如何解决这个问题? 更新:我不想使用事务性 NTFS ..
发布时间:2022-01-06 20:48:57 C#/.NET

单个事务下具有相同连接字符串的多个连接,提升事务?

当使用 ado.net 并在单个事务中创建到 MS SQL Server 数据库的多个连接(使用 System.Transactions.TransactionScope)时,System.Transactions 是否将事务从轻量级事务管理器提升到分布式事务协调器(Vista 上的内核事务协调器),即使所有连接对象的连接字符串都相同? 文档在这种特定情况下有些含糊不清.它表示如果在事务期间 ..
发布时间:2022-01-06 20:48:17 C#/.NET

即使未调用 System.Transactions.TransactionScope.Commit() 也提交了数据

在什么情况下,包裹在 System.Transactions.TransactionScope 中的代码仍然可以提交,即使抛出了异常并且最外层的作用域从未被调用过? using (var tx = new TransactionScope()) 中有一个顶级方法,它以相同的方式调用也使用 TransactionScope 的方法. 我正在使用带有关联表适配器的类型化数据集.可能是由于某 ..
发布时间:2022-01-06 20:46:43 C#/.NET