问题标签 [object-initializers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 集合类型的初始容量,例如 Dictionary、List
.Net 中的某些集合类型具有可选的“初始容量”构造函数参数。例如:
我似乎无法在 MSDN 上找到这些对象的默认初始容量。
如果我知道我只会在字典中存储 12 个左右的项目,那么将初始容量设置为 20 是否有意义?
我的理由是,假设容量像 StringBuilder 一样增长,每次容量都会增加一倍,并且每次重新分配都是昂贵的,为什么不将大小预先设置为您知道可以保存数据的大小,并增加一些额外的房间以防万一?如果初始容量是 100,并且我知道我只需要十几个左右,那么似乎该内存的其余部分是白分配的。
c# - C#:具有两个构造函数的对象:如何限制将哪些属性设置在一起?
假设您有一个 Price 对象,它接受(整数数量,十进制价格)或包含“4/$3.99”的字符串。有没有办法限制哪些属性可以一起设置?请随时在下面的逻辑中纠正我。
测试:A 和 B 彼此相等,但不应允许 C 示例。因此问题如何强制不调用所有三个参数,如 C 示例中的那样?
班上:
构造函数:
方法:
访问者:
c# - CodeDom 和集合初始化器
有没有办法使用 C# CodeDom 生成字典初始化程序?那些都支持吗?
我想拥有:
c# - c# 对象初始值设定项复杂度。最佳实践
当对象初始化器出现在 C# 中时,我太兴奋了。
可以改写更短:
对象初始化程序代码更明显,但是当属性数量达到十几个并且一些赋值处理可空值时,很难调试“空引用错误”的位置。Studio 将整个对象初始化程序显示为错误点。
现在我使用对象初始化器来直接分配无错误的属性。
您如何使用对象初始值设定项进行复杂的赋值,或者根本使用十几个赋值是一种不好的做法?
先感谢您!
c# - 对象初始化器和构造器
我正在尝试使用对象初始值设定项来设置类的属性,然后在类的构造函数中访问它们。问题是在构造函数运行之后似乎没有设置属性。难道我做错了什么。
基础班..
客户端类
c# - Linq IEnumerable Select 问题 - 我可以在我的选择中完成所有这些吗?
我有一个快速的问题。我可以在 select 语句中执行所有这些逻辑吗?
做一个选择感觉不对,然后循环遍历列表并修改我刚刚选择的项目。我可以在 select 语句中执行所有这些操作吗?
感谢您的任何提示。
干杯,
~ck 在圣地亚哥
c# - C# Object Initialiser - 对新实例的引用
我能否以某种方式获得对我正在使用对象初始化程序创建的实例的引用
“this”应该指向我正在创建的新 TestClass 实例。但它显然是指这段代码所在的类的实例。
我不是在问这是否是一个好方法。我知道我可以这样做:
我有一个复杂的场景,其中对对象初始化程序中的新实例的引用会使生活更轻松。
这有可能吗?
c# - c# 构造函数 vs 自动属性和对象初始值设定项
我已经使用了很多自动属性,但我越来越远离设置具有在构造函数中初始化的只读支持字段的类。我删除了所有设置器,并且仅在属性明确需要设置器时才添加后面。
我发现这使我的课程更加健壮和优雅的面向对象,我因为没有早点这样做而自责。
我发现构造函数在 c# 代码示例中通常没有得到充分利用,我认为自动属性和对象初始化器是其中的重要组成部分,所以我的问题是为什么 c# 团队会推动这样的功能,而不是更多地专注于提供最好的功能多练习。一般来说,我认为编写糟糕的代码太容易了,并且相信可以做更多的事情来帮助程序员编写好的代码
c# - C# 到 VB.net 列表的转换有错误
我正在尝试将一些 C# 代码转换为 VB,但出现错误。什么是正确的 VB 语法?
C#
VB
我也将如何转换它?暗淡列表作为新列表(国家)()来自 { 新国家()与 { Key .Name = “Select Country”,Key .Code = “0” } }
谢谢
iqueryable - 为什么我的 IQueryable LINQtoObject 被视为 LINQtoSQL 并且不支持对 SQL 的转换
我有一个包装在 POCO 中的 LINQ dbml 类。我已经构建了采用 DBML 类和 init 的重载构造函数。包装器对象的属性基于传入的 dbml 对象。
例如
如果我然后做这样的事情,我返回一个 IQueryable
{
当我尝试对该 Iquearble 进行进一步查询时,我得到“System.NotSupportedException: The member 'MyPerson.ID' has no supported translation to SQL..”
但是,如果我这样做{
我根本没有收到错误,一切都很完美。基本上我想让我的班级处理从 LINQ 对象到 POCO 本身的转换。
基本上我必须使用对象初始化器,否则我无法在该字段上匹配。