所以我有这样的事情
public string? SessionValue(string key)
{
if (HttpContext.Current.Session[key].ToString() == null || HttpContext.Current.Session[key].ToString() == "")
return null;
return HttpContext.Current.Session[key].ToString();
}
Run Code Online (Sandbox Code Playgroud)
哪个不编译.
如何返回可以为空的字符串类型?
我有一个更新函数,通过数据集更新sql server db表.表中的一个字段是整数并接受空值.所以,当我填充更新功能,我需要一种方法来进入当函数想要一个整数空.
我尝试这样做但 _intDLocation = ""引发异常
Dim _dLocation As String = udDefaultLocationTextEdit.Text
Dim _intDLocation As Integer
If _dLocation <> "" Then
_intDLocation = Integer.Parse(udDefaultLocationTextEdit.Text)
Else
'NEED HELP HERE
_intDLocation = ""
End If
Run Code Online (Sandbox Code Playgroud) 可能重复:
Nullable类型不是可空类型?
在以下代码中:
DateTime? dt = DateTime.Now;
MessageBox.Show(dt.GetType().ToString());
Run Code Online (Sandbox Code Playgroud)
消息框显示"System.DateTime",而不是Nullable<DateTime>.以下内容也返回false(因为GetType错误):
if (dt.GetType().IsAssignableFrom(typeof(DateTime?)))
...
Run Code Online (Sandbox Code Playgroud)
(顺便说一句,使用DateTime?或Nullable<DateTime>没有区别)在监视窗口中,您有"类型"列显示正确的类型(System.DateTime?).
在我的代码中,我引用了dt作为一个object,所以我需要正确地获取底层类型.我怎样才能做到这一点?
我们也可以这样做
nullableClassInstance?.method(blah)
Run Code Online (Sandbox Code Playgroud)
有办法吗?
nullableFunctionInstance?(blah)
Run Code Online (Sandbox Code Playgroud)
换句话说,是否有运算符检查函数实例是否为空,如果是,则在一行中调用函数?
我正在尝试创建一个关系,其中可以包含四个不同部分中的任何一个,但是任何相同部分的集合都应该作为唯一处理.
示例:作业必须具有指定的公司,可以选择具有指定的位置,工作组和程序.作业可能没有没有位置的工作组.
我们假设我们有公司A,B,C; 位置X,Y,Z; 工作组I,J,K和计划1,2,3.
所以有效的关系可能包括A - X - I - 1 A - Z - 2 B - Y C C - 3 B - Z - K.
但无效关系将包括A - K(没有位置的工作组)Y - K - 1(没有公司)
所以,为了创建我的表,我已经创建了
companyID INT NOT NULL,
FOREIGN KEY companyKEY (companyID) REFERENCES company (companyID),
locationID INT,
FOREIGN KEY locationKEY (locationID) REFERENCES location (locationID),
workgroupID INT,
FOREIGN KEY workgroupKEY (workgroupID) REFERENCES workgroup (workgroupID),
programID INT,
FOREIGN KEY programKEY (programID) REFERENCES program (programID),
UNIQUE KEY companyLocationWorkgroupProgramKEY (companyID, locationID, …Run Code Online (Sandbox Code Playgroud) 我已经尝试了两种方法将泛型类型参数约束为可空类型,但两者似乎都有一些意想不到的问题.
第一次尝试(使用T <:AnyRef):
scala> def testAnyRefConstraint[T <: AnyRef](option:Option[T]):T = {
| //without the cast, fails with compiler error:
| // "found: Null(null) required: T"
| option getOrElse null.asInstanceOf[T]
| }
testAnyRefConstraint: [T <: AnyRef](Option[T])T
scala> testAnyRefConstraint(Some(""))
res0: java.lang.String =
scala> testAnyRefConstraint(Some(0))
<console>:16: error: inferred type arguments [Int] do not conform to method testAnyRefConstraint's type parameter bounds [T <: AnyRef]
testAnyRefConstraint(Some(0))
Run Code Online (Sandbox Code Playgroud)
这似乎完全符合我的要求,但我不明白为什么需要将null转换为T.
第二次尝试(使用T>:Null):
scala> def testNullConstraint[T >: Null](option:Option[T]):T = {
| option getOrElse null
| }
testNullConstraint: [T >: Null](Option[T])T
scala> …Run Code Online (Sandbox Code Playgroud) 我想改变默认(T)对某些类的行为.因此,我想返回一个null对象,而不是为我的引用类型返回null.
有一些像
kids.Clear();
var kid = kids.Where(k => k.Age < 10).SingleOrDefault();
if (kid is NullKid)
{
Console.Out.WriteLine("Jippeie");
}
Run Code Online (Sandbox Code Playgroud)
任何人都知道这是否可能?
重写以下代码是否安全:
bool b = foo.bar.HasValue ? foo.bar.Value : false;
Run Code Online (Sandbox Code Playgroud)
至
bool b = foo.bar.Value ?? false;
Run Code Online (Sandbox Code Playgroud)
哪里bar是可空的类型bool?
我想尝试将a解析string为a DateTime?,如果失败则将值设置为null.我能想到的唯一方法就是如下,但它看起来并不是很整洁.
DateTime temp;
DateTime? whatIActuallyWant = null;
if (DateTime.TryParse(txtDate.Text, out temp)) whatIActuallyWant = temp;
Run Code Online (Sandbox Code Playgroud)
这是唯一的方法吗?
请考虑C#中的以下代码.
public int Foo(int a)
{
// ...
}
// in some other method
int? x = 0;
x = Foo(x);
Run Code Online (Sandbox Code Playgroud)
最后一行将返回一个cannot convert from 'int?' to 'int'足够公平的编译错误.但是,例如在Haskell中Maybe,有一个与NullableC#相对应.既然Maybe是Functor我将能够适用Foo于x使用fmap.C#有类似的机制吗?