标签: accessor

启动具有访问者的事件

如何启动具有以下访问器的事件:

public event EventHandler CanExecuteChanged
    {
      add
      {
        CommandManager.RequerySuggested += value;
      }
      remove
      {
        CommandManager.RequerySuggested -= value;
      }
    }
Run Code Online (Sandbox Code Playgroud)

如果这是正常事件,我会通过以下方式启动它:

CanExecuteChanged(sender, EventArgs..). 
Run Code Online (Sandbox Code Playgroud)

但在这里它不起作用 - 我只能这样做

CanExecuteChanged +=..
Run Code Online (Sandbox Code Playgroud)

附加方法做事件 - 但我无法启动它.

此外,一些关于这个主题的文件将不胜感激.谢谢.

编辑 该事件来自在WPF中实现ICommand的类.没有什么可以显示:).并且没有 - CommandManager.RequerySuggested(this,EventArgs.Empty); 不起作用.

EDIT2不知道该说些什么 - 即使正确调用add方法,Jon的例子也应该有效 - 当我尝试调用事件时 - 它是null:|.我可能会删除带有访问器的事件.

c# events accessor

5
推荐指数
1
解决办法
1263
查看次数

核心数据原始访问器

我对Core Data是否以setPrimitiveAttributeName:形式生成NSManagedObject子类的原始访问器感到困惑,与形式setPrimitiveValue:forKey:相比,它似乎始终如一.

我混淆的原因是我使用了建模工具(XCode 4)为我的两个实体生成NSManagedSubclasses,据我所知,它们共享相同的元数据设置,但是一个子类识别setPrimitiveAttributeName形式,而另一个没有(它给我一个"找不到方法"编译器警告).

那么,期望是什么?如果我打开一个新项目,创建一个具有一个属性的实体,并使用建模工具生成必要的NSManagedObject子类代码,我是否应该期望它自动生成更有效的原始访问器形式?

primitive core-data accessor

5
推荐指数
1
解决办法
1787
查看次数

System.BadImageFormatException:无法加载文件或程序集'x_Accessor,...'此程序集由运行时更新程序构建

System.BadImageFormatException: Could not load file or assembly 'x_Accessor, 
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. 
This assembly is built by a runtime newer than the currently loaded runtime and 
cannot be loaded.
Run Code Online (Sandbox Code Playgroud)

我很难找到治愈这种疾病的方法......

我已经为点网测试项目创建了单元测试.使用默认的单元测试框架.

自动化工具创建了一个访问器 - 用于测试私有方法.

[我知道理论,私人方法应该通过他们的呼叫者进行测试 - 但是,这取决于他们的目的,内容,背景等等......所以,如果可以的话,我会测试它们.

我过去在几个项目中做过这个,它运行良好.

但是在我试图测试的这两个项目中,我遇到了这个问题......

注意:我使用的是Framework 3.5 - 这可能是一个问题? - 但访问者应该知道!

我完全看不到在哪里可以修改程序集的运行时...我想这是访问器.

是的,我做了清理和重建,我完全删除了输出文件夹并重建,我确实删除了访问器和私有方法并重新创建它.

请帮我找到解决方法!谢谢.

.net c# unit-testing accessor

5
推荐指数
1
解决办法
9936
查看次数

用点表示法调用属性的getter方法

我在使用Objective-C属性时遇到了一些困难。.我正在显示一段代码来解释我的疑问:

@interface A : NSObject
@property (nonatomic,getter = isChosen) BOOL chosen;
@end
Run Code Online (Sandbox Code Playgroud)

主目录

A *myClass = [[A alloc]init];

myClass.chosen = YES;
NSLog(@"1. myClass.chosen = %hhd", myClass.chosen);
myClass.chosen = NO;
NSLog(@"2. myClass.chosen = %hhd", myClass.chosen);          
NSLog(@"3. myClass.chosen = %hhd", [myClass isChosen]);      
NSLog(@"4. myClass.chosen = %hhd", myClass.isChosen);
Run Code Online (Sandbox Code Playgroud)

输出值

1. myClass.chosen = 1
2. myClass.chosen = 0
3. myClass.chosen = 0
4. myClass.chosen = 0
Run Code Online (Sandbox Code Playgroud)

一切都清楚对我来说,除了代码,在那里我得到的值的最后一行选择属性myClass.isChosen:我理解的点语法myClass.chosen,因为编译器将其转换在消息符号语法[myClass isChosen],但我真的不明白为什么myClass.isChosen可行,或者更好,我认为编译器再次将其转换为消息表示法,但对我来说似乎有点奇怪。

我想知道使用点表示法语法调用getter方法是否被认为是一种好习惯,并且似乎只对我来说很奇怪。.显然,只有在属性声明中更改 …

getter properties objective-c accessor

5
推荐指数
1
解决办法
2479
查看次数

Ruby私有和公共访问器

在Ruby中定义访问器时,简洁(我们都喜欢)和最佳实践之间可能存在紧张关系.

例如,如果我想在实例上公开一个值但禁止任何外部对象更新它,我可以执行以下操作:

class Pancake
  attr_reader :has_sauce

  def initialize(toppings)
    sauces = [:maple, :butterscotch]
    @has_sauce = toppings.size != (toppings - sauces).size
...
Run Code Online (Sandbox Code Playgroud)

但突然间我正在使用一个原始实例变量,这让我抽搐了.我的意思是,如果我需要在未来某一日期设定之前处理has_sauce,我可能需要做更多的重构不仅仅是重写访问.来吧,原始实例变量?布莱什.

我可以忽略这个问题并使用它attr_accessor.我的意思是,任何人都可以设置属性,如果他们真的想要; 毕竟,这就是Ruby.但后来我失去了数据封装的想法,对象的界面定义不太明确,系统可能更混乱.

另一种解决方案是在不同的访问修饰符下定义一对访问器:

class Pancake
  attr_reader :has_sauce
  private
    attr_writer :has_sauce
  public

  def initialize(toppings)
    sauces = [:maple, :butterscotch]
    self.has_sauce = toppings.size != (toppings - sauces).size
  end
end
Run Code Online (Sandbox Code Playgroud)

这完成了工作,但对于一个简单的存取器而言,这是一大块样板,而且非常坦率地说:ew.

那么有更好的,更Ruby的方式吗?

ruby access-modifiers accessor attr-accessor

5
推荐指数
3
解决办法
4163
查看次数

当我从 Json.net 反序列化对象时设置访问器不被调用

public class SpecialObject
{
    public string ID;
    [JsonIgnore]
    public List<SpecialObject> SpecialObjectCollection = new List<SpecialObject>();
    [JsonIgnore]
    public List<string> tempObjectIDs = new List<string>();

    [JsonProperty]
    public List<string> SpecialObjectIDs { get { return SpecialObjectCollection.Select(x => x.ID).ToList(); } set { tempObjectIDs = value; } }

    public SpecialObject() { }
    public SpecialObject(string _id) { ID = _id; }
}

static void Main(string[] args)
{
    SpecialObject parent = new SpecialObject("parentIDstring");
    parent.SpecialObjectCollection.Add(new SpecialObject("childIDstring"));

    string test = JsonConvert.SerializeObject(parent);
    SpecialObject reconstructedObject = JsonConvert.DeserializeObject<SpecialObject>(test);
}

//string test:
//{"ID":"parentIDstring","SpecialObjectIDs":["childIDstring"]}
Run Code Online (Sandbox Code Playgroud)

我想将 SpecialObject 序列化为 …

c# serialization json accessor json.net

5
推荐指数
1
解决办法
819
查看次数

javascript 对象中的访问器和普通函数有什么区别?

除了调用它们的方式之外,javascript 对象中这两个函数(一个是访问器属性 getter)之间的具体区别是什么?

var o = {
  foo: function() { return "bar"; },
  get foo2() { return "bar2"; }
}
Run Code Online (Sandbox Code Playgroud)

javascript function accessor

5
推荐指数
1
解决办法
1093
查看次数

Laravel 5.2 Eloquent - 通过范围访问器

我有一个模型,我需要检查值并返回一个不健康的状态.我创建了一个Accessor,它正在工作并按预期返回true或false.

$task->unhealthy()
Run Code Online (Sandbox Code Playgroud)

访问者代码

    public function getUnhealthyAttribute(){

        //Is in Active status
        if ( $this->status_id == 1 ){
            return true;
        }

        //Has overdue items
        if ( $this->items()->overdue()->count() > 0 ) {
            return true;
        }

        return false;
    }
Run Code Online (Sandbox Code Playgroud)

我现在需要检索所有"不健康"任务的集合.

问题:是否可以将我的Accessor与范围一起使用?什么是正确的方法?

scope accessor laravel eloquent

5
推荐指数
1
解决办法
361
查看次数

Laravel 中的 Mutators 和 Accessors 是什么

我试图了解访问器和修改器以及我为什么需要它们。我的另一个问题是属性方法的中间部分,例如:

存取器

public function getFirstNameAttribute($value)
{
   return ucfirst($value);
}
Run Code Online (Sandbox Code Playgroud)

突变体:

public function setFirstNameAttribute($value)
{
    $this->attributes['first_name'] = strtolower($value);
}
Run Code Online (Sandbox Code Playgroud)

在这里,我们可以看到 getFirstNameAttribute 和 setFirstNameAttribute 方法,但我无法清除它们的中间部分FirstName。如果有更好的解释和友好的合作,我将不胜感激。

accessor mutators laravel

5
推荐指数
1
解决办法
5346
查看次数

Pandas 类与 Pandas .p​​ipe()

@pd.api.extensions.register_dataframe_accessor("data_cleaner")
class DataCleaner:

    def __init__(self, pandas_obj):
        self._obj = pandas_obj

    def multiply(self, col):
        self._obj[col] = self._obj[col] * self._obj[col]
        return self._obj 
    
    def square(self, col):
        self._obj[col] = self._obj[col]**2
        return self._obj 
    
    def add_strings(self, col):
        self._obj[col] = self._obj[col] + self._obj[col]
        return self._obj 

    def process_all(self):
        self._obj.pipe(
            self.multiply(col='A'),
            self.square(col='B')
            self.add_strings(col='C')
        )
    

class DataProcessor(DataCleaner):

    data = [
        [1, 1.5, "AABB"],
        [2, 2.5, "BBCC"],
        [3, 3.5, "CCDD"],
        [4, 4.5, "DDEE"],
        [5, 5.5, "EEFF"],
        [6, 6.5, "FFGG"],
    ]

    def __init__(self):
        self.df = pd.DataFrame(data=DataProcessor.data, columns=['A', 'B', 'C'])

    def get_data(self):
        return self.df …
Run Code Online (Sandbox Code Playgroud)

python accessor dataframe pandas

5
推荐指数
1
解决办法
1060
查看次数