问题标签 [accessor]
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# - 使用包含协变类型的项目的访问器在单元测试项目中构建失败
我在我们的项目中添加了一个协变接口:
我创建了一些类,实现了这些接口:
我可以毫无问题地使用它:
所以一切似乎都是正确的,所以我假设我的协方差使用是正确的。不幸的是,我们的单元测试项目包含来自同一项目中某些类型的私有访问器,例如协变接口,这会导致构建失败。
无法从程序集“GenericInheritanceTest_Accessor,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”加载类型“GenericInheritanceTest.IPresenter_Impl`1”,因为它声明了协变或逆变类型参数,而不是接口或委托。
这里到底有什么问题?我的实施是否有失败,分别。如何解决这个问题?不可能,一旦我们使用协变类型,我们就必须避免访问器???是否可以阻止为某些类型创建访问器来解决此问题?
php - 在 php 中使用访问器方法与公共变量的权衡是什么
我正在寻找有关在 php 中使用公共变量与私有变量和访问器方法的建议/经验。
例如 $obj->foo = 'a'; 回声 $obj->foo;
vs $obj->setFoo('a'); 回声 $obj->getFoo();
我喜欢公共变量的地方在于更短的语法 - 似乎使用起来更少。我知道这可能会使以后的重构变得更加困难,但我从未经历过(意思是,有时设计会发生变化 - 但通常访问器方法需要进行任何更改。)
另一种选择是将变量存储在数组中并使用魔术方法(__get/__set)来访问它们——然后我可以轻松使用公共变量,并能够重构或访问方法。
人们在 php 世界中所做的任何经验或参考。
对于任何持有访问器方法的人来说都是最好的方法,公共变量是否有有效的需求/用途?
iphone - 访问器/获取器和延迟初始化
我有一个关于覆盖自动生成的访问器方法的问题。以下方法不起作用(我相信),因为每个 getter 都引用了另一个 getter。有没有规定访问器方法不应该使用其他访问器方法,或者您只需要单独注意这些情况?
我必须强调,这里介绍的图像使用只是一个示例,在这个特定示例中关于做什么的想法不如在一般情况下重要。
ruby-on-rails - 设置表单以获取临时变量的最佳方法是什么?
我正在制作照片上传表格。在开始之前,他们有两个选择。他们可以创建一个新画廊,也可以从现有画廊中进行选择。
我在想最好的办法是两个有两种形式。一种用于创建,将它们带到创建页面。这很容易,而且实际上已经完成。
但是第二种形式,我需要在一个选择框中获取画廊名称并将其应用到一个add_photos_to_gallery
表单 - 这对我来说很棘手。我吗?
一种。为这个表单创建一个临时变量并将其传递给控制器,然后从他们选择的内容中生成表单?如果是这样,我该怎么做?
湾。使用 jquery 并以某种方式操纵 DOM 来创建表单?我有一些想法..
C。意识到我太笨了,不知道更好更明显的事情吗?
c++ - 初学者 C++ 使用访问器/获取器从私有成员变量(二维数组)中提取数据
这里的总菜鸟有大约 2 个月的 C++ 经验(没有其他背景),所以对我来说放轻松。
我正在为编程任务编写战舰游戏。游戏网格是 15X20,我试图将网格作为类的私有成员变量player
。
我的问题是:
如果类player
有一个私有成员变量:
是否有任何理由将访问器函数定义为:
行不通?
它正在我的头脑中。我得到的错误是:
c2065:“playgrid”未声明的标识符
它指向return playgrid[val1][val2]
访问器定义中的行。
在试图弄清楚这一点时,我已经成功地使用我的 getter 从其他私有成员变量中提取值,因此在创建对象后,其他一切都在对象中正常工作。我绝对没有拼错任何东西或滥用大小写。在我的构造函数中,playgrid 初始化如下:
是什么赋予了?
c# - 返回引用类型的方法是否返回引用或克隆副本?
这些天我一直在学习 Java,我所读到的"Be careful not to write accessor methods that return references to mutable objects"
内容真的很有趣。现在我想知道 C# 中的 Properties 和 Accessor 方法是否相同?还是 C# 已经自动返回克隆的副本?
谢谢。
c++ - 如何编写一个返回对成员对象的引用的 const 访问器,以便可以对其进行编辑?
这是问题所在。我编写了这个函数来返回对成员向量的 i 元素的引用,因此可以编辑这个元素。这是代码:
但是 g++ 不允许我将该元素分配给非常量引用:
怎么可能解决?我的想法是建立一个像向量的 at() 函数这样的函数,所以它是 const 因为它不编辑对象本身,但它应该让我编辑返回的对象......这可能吗?
已解决:我只需要重载函数:),所以声明一个 const 和一个非常量版本。我担心不允许 const 和非 const 重载,但我看到 const 改变了参数列表,使其成为可能。
c# - 自动属性必须同时定义 get 和 set 访问器是否有技术原因
我知道自动属性必须定义一个 get 和 set 访问器方法,我也知道这些访问器中的任何一个都可以通过访问修饰符变得不可见。
编译器是否满意的技术原因
但不是
我对这段代码的(可能是错误的)理解是编译器生成了一个对调用代码隐藏的支持字段,如下所示:
如果编译器可以生成它,是否有理由根据属性声明中设置器的存在(或缺少)来省略设置访问器函数。
我知道这可能是功能范围问题而不是技术限制,我也坦率地承认我还没有参考 C# 语言规范。
[更新 2 ]
原谅我......我是个白痴:P,我现在明白了,谢谢大家容忍我的高级时刻/
c# - 从 IOException 获取错误代码
从 IOException 或常规异常中获取(十六进制)错误代码!
这可能吗?我知道它有一个错误代码(HResult),但 get 访问器是私有的。
我会做一些 ComException 的事情,但我不确定这样做的利弊,以及它是否可能/是否相同。
iphone - 初始化器、属性、访问器和复制/保留/只读
我想了解如何设置属性(访问器)的参数。
我从 Kal 日历的示例中获取了以下代码。
1) 属性设置为retain
,但由于不能使用 setter,所以retain
这里没有意义。
2) 此外,在initWithName
方法中,值是用 设置的copy
。为什么不直接copy
使用访问器方法定义属性?
3)我需要readonly
这里吗?我不知道为什么在这里使用它们。如果我将copy
与 setter 一起使用,则readonly
禁止我设置值,因为没有 setter。
4)在initWithName
方法中有时copy
有时retain
使用。我建议总是copy
在这里使用,因为以后不应该修改该值。
5)我能记住的是,在方法中/中copy
是retain
可以的。initWithName
release
dealloc
那么你会如何建议使用retain
,copy
和readonly
在这个例子中呢?