小编Ron*_*504的帖子

比较运算符如何与null int一起使用?

我开始学习可空类型并遇到以下行为.

在尝试nullable int时,我看到比较运算符给了我意想不到的结果.例如,在我的下面的代码中,我得到的输出是"两个和1相等".请注意,它也不会打印"null".

int? a = null;
int? b = 1;

if (a < b)
    Console.WriteLine("{0} is bigger than {1}", b, a);
else if (a > b)
    Console.WriteLine("{0} is bigger than {1}", a, b);
else
    Console.WriteLine("both {0} and {1} are equal", a, b);
Run Code Online (Sandbox Code Playgroud)

我希望任何非负整数都大于null,我错过了什么吗?

c# nullable

129
推荐指数
4
解决办法
6万
查看次数

数组的"分区数"和"范围"是多少?

根据MSDN doc Array.Sort,

如果分区数超过2*logN,其中N是输入数组的范围,则它使用Heapsort算法.

我不知道的是阵列的"分区数"和"范围"是什么.这些是什么?

arrays sorting

6
推荐指数
1
解决办法
456
查看次数

事务隔离级别 REPEATABLE READ 导致死锁

在事务隔离级别“可重复读取”上打开连接后,我的应用程序的一部分根据业务逻辑更新表。在极少数情况下,如果此操作与应用程序的另一部分同时打开不同的连接并尝试将同一记录重置为其默认值。我收到以下错误

Msg 1205, Level 13, State 45, Line 7
Transaction (Process ID 60) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Run Code Online (Sandbox Code Playgroud)

我想我可以使用以下示例重现该问题。

1.

create table Accounts
(
id int identity(1,1),
Name varchar(50),
Amount decimal
)
Run Code Online (Sandbox Code Playgroud)

2.

insert into Accounts (Name,Amount) values ('ABC',5000)
insert into Accounts (Name,Amount) values ('WXY',4000)
insert into Accounts (Name,Amount) values ('XYZ',4500)
Run Code Online (Sandbox Code Playgroud)

3.

启动一个隔离级别为 REPEATABLE READ 的长事务

Set transaction isolation level REPEATABLE READ

begin tran

declare @var …
Run Code Online (Sandbox Code Playgroud)

sql-server transactions

5
推荐指数
1
解决办法
3479
查看次数

标签 统计

arrays ×1

c# ×1

nullable ×1

sorting ×1

sql-server ×1

transactions ×1