========可空值类型(nullable value type)
System.Nullable<int> myNullableInteger=null;
myNullableInteger=1;
if(myNullableInteger!=null)
{
Console.WriteLine(myNullableInteger.Value);
}
语法:System.Nullable<int> myNullableInteger;
可以简化为:
Int? myNullableInteger;
-----将空值类型的值赋值给普通值类型
Int? myNullableInteger=null;
Int myInteger=myNullableInteger;
和
Int? myNullableInteger=null;
Int myInteger=myNullableInteger.Value;
以上两种写法都是错误的
可以用System.Nullable<T>.HasValue属性判断一个可空值类型是否被赋过一个类型为T的有效值:
Int? myNullableInteger=null;
If(myNullableInteger.HasValue)
{
Int myInteger=myNullableInteger.Value;
}
另外一种方法:
Int? myNullableInteger=null;
Int myInteger=myNullableInteger ?? -1;
如果不为空就被赋为myNullableInteger,否则为-1;
=============轻量级事务管理器(system.Transactions.TransactionManager)
-------显示使用System.Transactions.CommittableTransaction类
CommitableTransaction transaction=new CommittableTransaction();
Using(SqlConnection myConnection=new SqlConnection(myConnectionString))
{
myConnection.Open();
myConnection.EnlistTransaction(tx);
//Do transactional work
……
//Commit the transaction;
Transaction.Close();
}
隐式的方法会使用System.Transactions.TransactionScope类
Using(TransactionScope scope=new TransactionScope())
{
//Do transactional work;
//……
//没有错误,就提交事务
Scope.Complete();
}
在上例中using块执行的代码会隐式的包含在一个事务中
浙公网安备 33010602011771号