Tag: C#的

C#相当于SQL Server中的IsNull()函数

在SQL Server中,您可以使用IsNull()函数检查一个值是否为空,如果是,则返回另一个值。 现在我想知道在C#中是否有类似的东西。 例如,我想要做类似的事情: myNewValue = IsNull(myValue, new MyValue()); 代替: if (myValue == null) myValue = new MyValue(); myNewValue = myValue; 谢谢。

删除vs删除

可能重复: (POD)释放内存:是删除[]等于删除? 当我被教导C ++,这是很久以前。 我被告知从不使用delete但delete[]作为执行delete[]单个对象将相当于delete 。 知道不要相信老师,我想知道,这是真的吗? 有没有理由调用delete而不是delete[] ? 我已经扫描了可能相关的问题,但没有find明确的答案。

如何检查一个对象是否在C#中可序列化

我正在寻找一种简单的方法来检查,如果在C#中的对象是可序列化的。 正如我们所知,通过实现ISerializable接口或将[Serializable]放在类的顶部,可以使对象可序列化。 我正在寻找的是一个快速的方法来检查这一点,而不必反映类获取它的属性。 该界面将快速使用is语句。 使用@ Flard的build议,这是我已经提出的代码,尖叫是有一个更好的方法。 private static bool IsSerializable(T obj) { return ((obj is ISerializable) || (Attribute.IsDefined(typeof (T), typeof (SerializableAttribute)))); } 或者甚至更好的只是获取对象的types,然后使用types的IsSerializable属性: typeof(T).IsSerializable 请记住,这似乎只是我们正在处理的类,如果类包含其他类,你可能想要检查他们所有或尝试序列化和等待错误@pb指出。

IEnumerable <string>string

我从来没有偶然发现过,但我现在很惊讶,我找不到一个真正简单的方法来将IEnumerable<char>转换为string 。 我能想到的最好的方法是string str = new string(myEnumerable.ToArray()); ,但对我来说,似乎这会创build一个新的char[] ,然后从中创build一个新的string ,这看起来很昂贵。 我会认为这将是在.NET框架内build立的通用function。 有一个更简单的方法来做到这一点? 对于那些感兴趣的,我想使用这个的原因是使用LINQ过滤string: string allowedString = new string(inputString.Where(c => allowedChars.Contains(c)).ToArray());

我如何循环访问List <T>并获取每个项目?

我如何循环访问列表并获取每个项目? 我想要输出如下所示: Console.WriteLine("amount is {0}, and type is {1}", myMoney.amount, myMoney.type); 这是我的代码: static void Main(string[] args) { List<Money> myMoney = new List<Money> { new Money{amount = 10, type = "US"}, new Money{amount = 20, type = "US"} }; } class Money { public int amount { get; set; } public string type { get; set; […]

将占位符文本添加到文本框

我正在寻找一种方法来添加占位符文本到一个文本框,就像你可以用HTML5中的文本框。 也就是说,如果文本框没有文本,那么它会在Enter some text here添加文本Enter some text here ,当用户点击它时占位符文本消失,并允许用户input自己的文本,如果文本框失去焦点,并且仍然没有文字然后占位符被添加回到文本框。

C Struct中的缺省值

我有这样的数据结构: struct foo { int id; int路由; int backup_route; int current_route; } 和一个叫做update()的函数,用来请求它的变化。 更新(42,dont_care,dont_care,new_route); 这真的很长,如果我添加一些东西的结构,我必须添加一个'dont_care'每EVERY更新(…)。 我正在考虑传递一个结构,而不是事先在“dont_care”中填充结构,而不是在函数调用中拼写。 我可以创build结构的默认值不考虑的地方,只是设置我关心的领域之后,我声明它作为一个局部variables? struct foo bar = {.id = 42,.current_route = new_route}; 更新(巴); 什么是最优雅的方式来传递我想expression更新function的信息? 我希望其他所有的东西都默认为-1('不关心'的密码)

如何在razor中指定数据属性,例如@ this.Html.CheckBoxFor(…)上的data-externalid =“23151”

@this.Html.CheckBoxFor(m => m.MyModel.MyBoolProperty, new { @class="myCheckBox", extraAttr="23521"}) 用剃刀,我无法指定数据属性的值,如data-externalid="23521" 有没有办法做到这一点使用@this.Html.CheckBoxFor(…) ?

如何在WinForms中保持一个标签?

在WinForms我使用Label显示不同的消息,如成功,失败等 我想把这个标签放在中间的位置。 我想要一个解决scheme,不pipe标签中只有一个单词还是整个句子,它都将保持居中。

为什么我可以将0.0赋给枚举值,而不是1.0

只是出于好奇:为什么我可以将0.0赋值给一个枚举types的variables,但不是1.0? 看看下面的代码: public enum Foo { Bar, Baz } class Program { static void Main() { Foo value1 = 0.0; Foo value2 = 1.0; // This line does not compile Foo value3 = 4.2; // This line does not compile } } 我认为数值types和枚举值之间的转换只允许通过转换? 那是我可以写Foo value2 = (Foo) 1.0; 所以Main中的第2行可以编译。 为什么C#中的值为0.0出现exception?