Tag: 默认值

覆盖结构中的默认值(c#)

是否可以设置或覆盖结构的默认状态? 作为一个例子,我有一个 enum something{a,b,c,d,e}; 以及为该枚举链接2个值的结构 struct SomethingData { something type; int Value; double Multipler; SomethingData(something enumVal, int intVal, double DblVal) {…} } 但是我可以指定默认状态 SomethingData(something.c,0,1);

PropertyInfo SetValue和nulls

如果我有类似的东西: object value = null; Foo foo = new Foo(); PropertyInfo property = Foo.GetProperties().Single(p => p.Name == “IntProperty”); property.SetValue(foo, value, null); 然后将foo.IntProperty设置为0 ,即使value = null 。 它看起来像IntProperty = default(typeof(int)) 。 如果IntProperty不是“可空”类型( Nullable或引用),我想抛出InvalidCastException 。 我正在使用Reflection,所以我不提前知道类型。 我该怎么做呢?

我可以在C#4.0中指定默认的Color参数吗?

这是一个示例函数: public void DrawSquare(int x, int y, Color boxColor = Color.Black) { //Code to draw the square goes here } 编译器不断给我错误: Default parameter value for ‘boxColor’must be a compile-time constant 我试过了 Color.Black, Color.FromKnownColor(KnownColor.Black), and Color.FromArgb(0, 0, 0) 如何使Color.Black成为默认颜色? 另外,我不想使用字符串Black来指定它(我知道它可以工作)。 我想要Color.Black值。

DateTime ParseExact字符串未被识别为DateTime C#

我正在尝试将字符串解析为DateTime但我收到错误。 这是我的代码 return DateTime.ParseExact(“01/01/0001 12:00:00 AM”, “dd/MM/yyyy HH:mm:ss tt”, CultureInfo.InvariantCulture); 日期及其格式从DataBase获取为字符串,我正在尝试将其添加到DataColumn DateTime数据类型。 有什么问题? 谢谢。

如何在C#中覆盖默认值(T)?

可能重复: 如何更改默认(T)在C#中返回的内容 print(default(int) == 0) //true 同样,如果我有自定义对象,其默认值将为null。 print(default(Foo) == null) //true 我可以为default(Foo)自定义值而不是null吗? 例如,像这样: public static override Foo default() { return new Foo(); } 这不会编译。 谢谢..

C#变量初始化问题

我是否初始化整数变量是否有任何区别: int i = 0; int i; 编译器或CLR是否将此视为同一个东西? IIRC,我认为他们都被视为同一件事,但我似乎无法找到这篇文章。

为什么当我插入DateTime null时我在SQL Server中有“0001-01-01”?

我尝试在我的数据库中为字段类型’date’插入值null(DateTime),但我总是得到‘0001-01-01’ 。 我不明白,这个字段“允许空值”,我不知道为什么我有这个默认值。 我正在使用C#asp .net和MVC(entity framework),这是我的代码: Budget_Synthesis newBS = new Budget_Synthesis { Budget_Code = newBudgetCode, Last_Modified_Date = null }; db.Budget_Synthesis.AddObject(newBS); Last_Modified_Date是否输入System.DateTime? 所以我不知道为什么他们改变这个’null’。 如果我尝试在我的应用程序上显示该值,我会得到01/01/0001 00:00:00 和0001-01-01与SSMS 有人可以解释为什么我不能得到一个真正的’NULL’? 最好的祝福

更改inheritance的.net控件上的属性的DefaultValue

在.net中,我有一个inheritance的控件: public CustomComboBox : ComboBox 我只是想将DropDownStyle属性的默认值更改为另一个值(ComboBoxStyle.DropDownList),除了在基类(ComboBoxStyle.DropDown)中指定的默认值。 有人可能认为你可以添加构造函数: public CustomComboBox() { this.DropDownStyle = ComboBoxStyle.DropDownList; } 但是,这种方法会使Visual Studio Designer感到困惑。 在Visual Studio中设计自定义控件时,如果为DropDownStyle选择ComboBoxStyle.DropDown,则认为您选择的属性仍然是默认值(来自基本ComboBox类中的[DevaultValue()]),因此它不会将customComboBox.DropDownStyle = ComboBoxStyle.DropDown行添加到Designer.cs文件中。 令人困惑的是,您发现一旦运行屏幕就不会按预期运行。 那么你不能覆盖DropDownStyle属性,因为它不是虚拟的,但你可以这样做: [DefaultValue(typeof(ComboBoxStyle), “DropDownList”)] public new ComboBoxStyle DropDownStyle { set { base.DropDownStyle = value; } get { return base.DropDownStyle; } } 但是你会因使用“新”声明的细微差别而遇到麻烦。 我已经尝试了它并且似乎没有正常工作,因为视觉工作室设计师也对此方法感到困惑并强制ComboBoxStyle.DropDown(基类的默认值)。 有没有其他方法可以做到这一点? 对于冗长的问题很抱歉,很难详细描述。

数组中成员的默认值是多少?

我像这样实例化一个数组: int array[] = new int[4]; 这四个成员的默认值是什么? 它是null,0还是不存在?