【发布时间】:2018-03-22 21:50:54
【问题描述】:
如何使用默认文字比较 ValueType?
我试过这个,但它返回 _darkBlue.Equals(default) 总是返回 false:
static Color _darkBlue;
public static Color DarkBlue => _darkBlue.Equals(default) ? (_darkBlue = Color.FromHex("2980b9")) : _darkBlue;
注意:本例中的Color 是Xamarin.Forms.Color
【问题讨论】:
-
你想让它成为线程安全的单例吗?
-
@maccettura 好点,我没有考虑线程安全!不一定,但您介意共享线程安全和非线程安全的答案吗?我很想现在看到这两个!
-
你能提供一个minimal reproducible example 来证明这个问题吗?乍一看,它应该可以工作。
-
一个结构,根据定义,不能是单例。
-
Color.FromHex("2980b9")并不是一个昂贵的操作,值得尝试推迟执行它。只需在构建包含对象时执行它。您可能会花费更多的资源来尝试推迟执行该操作,而不是在可能需要之前完成工作。
标签: c# xamarin.forms c#-7.1