标签: accessor

访问者仅在定位ECMAScript 5及更高版本时可用

我正在尝试运行此代码,但它给了我以下错误:

Animal.ts(10,13):错误TS1056:访问者仅在定位ECMAScript 5及更高版本时可用.Animal.ts(14,13):错误TS1056:访问者仅在定位ECMAScript 5及更高版本时可用.

interface IAnimal{
    name : string;
    sayName():string;
}

class AnimalImpm implements IAnimal{
    private _name : string = '[Animal]';
    get name():string{
        return this._name;
    }

    set name(name:string){
        this._name = name;
    }

    constructor(name:string){
        this.name = name;
    }

    sayName():string {
        console.log(`My name is ${this.name}`);
        return "Hello";
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript accessor ecmascript-5 typescript

37
推荐指数
5
解决办法
2万
查看次数

Visual Studio键盘快捷键完成默认访问器{get; 组;}

我正在寻找一个键盘快捷方式来完成为C#类中的属性创建默认访问器.

像......
我开始输入:

public int Id 
Run Code Online (Sandbox Code Playgroud)

然后我按下一个或多个键,我最终得到:

public int Id { get; set; }
Run Code Online (Sandbox Code Playgroud)

c# keyboard-shortcuts accessor visual-studio

33
推荐指数
3
解决办法
2万
查看次数

为什么自动实现的属性必须同时定义get和set访问器

当我们定义一个属性时

    public string Name {get; set;}
Run Code Online (Sandbox Code Playgroud)

dot net可以使我们的属性代码.但是当我们使用时

    public string Name {get;}
    public string Name {set;}
Run Code Online (Sandbox Code Playgroud)

我们面对

'Hajloo.SomeThing.PropertyName.set' must declare a body because it is not marked abstract or extern. Automatically implemented properties must define both get and set accessors.
Run Code Online (Sandbox Code Playgroud)

实际上为什么编译器无法确定属性并自动生成代码?有什么问题?

c# get properties accessor set

32
推荐指数
2
解决办法
2万
查看次数

在Objective-C中只写属性

我坚持使用objective-c属性.我需要的是为变量分配一个只写属性,与readonly完全相反,即变量可以有setMethod,但它不应该有getMethod.我不知道怎么做.一些代码片段的答案表示赞赏.

iphone properties objective-c accessor iphone-sdk-3.0

29
推荐指数
3
解决办法
8978
查看次数

单元测试访问器(getter和setter)

给出以下方法:

public function setFoo($foo) {
    $this->_foo = $foo;
    return $this;
}

public function getFoo() {
    return $this->_foo;
}
Run Code Online (Sandbox Code Playgroud)

假设,未来可能会更改为更复杂:

  • 你会如何为这些方法编写单元测试?
  • 只有一种测试方法?
  • 我应该跳过这些测试吗?
  • 代码覆盖怎么样?
  • @covers注释怎么样?
  • 也许在抽象测试用例中实现一些通用的测试方法?

(我使用Netbeans 7)

这似乎是浪费时间,但我不介意IDE是否会自动生成这些测试方法.

要从塞巴斯蒂安·伯格曼博客的评论中获得评论:

(就像测试getter和setter一样 - 失败!).无论如何,如果他们失败了; 那些依赖它们的方法不会失败吗?

那么,代码覆盖怎么样?

php phpunit unit-testing accessor getter-setter

27
推荐指数
2
解决办法
9779
查看次数

Python的"__get*__"和"_del*__"方法有什么区别?

几个月前我刚刚开始学习Python,我试图理解不同__get*__方法之间的差异:

__get__
__getattr__
__getattribute__
__getitem___
Run Code Online (Sandbox Code Playgroud)

他们的__del*__等价物:

__del__
__delattr__
__delete__
__delitem__
Run Code Online (Sandbox Code Playgroud)

这些有什么区别?我什么时候应该使用另一个?是否有一个特定的原因,为什么大多数__get*__方法都有__set*__等价物,但没有__setattribute__

python accessor standard-library getter-setter

25
推荐指数
1
解决办法
9403
查看次数

如何避免吸气剂和二传手

我在很多地方都读过"吸气鬼和恶魔都是邪恶的".我理解为什么这样.但我不知道如何完全避免它们.Say Item是一个包含项目名称,数量,价格等信息的类......而ItemList是一个类,它有一个Items列表.要找到总计:

int grandTotal()
{
int total = 0;

for (Item item: itemList)
       total += item.getPrice();

return total;
}

在上面的例子中,如何避免getPrice()?Item类提供了getName,setName等....

我该如何避免它们?

oop ooad design-patterns properties accessor

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

使用反射设置对象属性

我按名称获取类,我需要使用相应的数据更新它们,我的问题是如何使用java我想要添加方法一些虚拟数据.我不知道类类型我只是获取类名并使用反射来获取他的数据

我使用此代码来获取类实例和

Class<?> classHandle = Class.forName(className);

Object myObject = classHandle.newInstance();

// iterate through all the methods declared by the class
for (Method method : classHandle.getMethods()) {
    // find all the set methods
    if (method.getName().matches("set[A-Z].*")
Run Code Online (Sandbox Code Playgroud)

并且知道我找到了我想用数据更新它的set方法的列表我该怎么做.

假设在类名中我得到了人,而且类有setSalary和setFirstName等我怎样才能用反射设置它们?

public class Person {

    public void setSalery(double salery) {
        this.salery = salery;
    }

    public void setFirstName(String FirstName) {
        this.FirstName = FirstName;
    }   
}
Run Code Online (Sandbox Code Playgroud)

java reflection accessor

25
推荐指数
2
解决办法
7万
查看次数

公共变量与具有访问器的私有变量

有没有人见过人们这样做:

private string _name;
public string Name{ get{ return _name; } set{ _name = value;}}
Run Code Online (Sandbox Code Playgroud)

我理解使用访问器,如果你要对它如何设置进行某种控制,或者在有get时对其执行某种功能.但是如果你只是要这样做,为什么不把变量公之于众?我错过了什么吗?

c# oop accessor

24
推荐指数
4
解决办法
6896
查看次数

在init和dealloc方法中有效使用访问器?

我现在从几个来源(stackoverflow.com,cocoa-dev,文档,博客等)中听到,在init和dealloc方法中使用访问器和设置(foo,setFoo :)是"错误的".据我所知,如果你这样做,很可能会混淆其他正在观察财产的物体.(这里给出一个简单的例子)

但是,由于以下原因,我不得不说我不同意这种做法:

新的Objective-C运行时(iPhone上的那个和10.5中的64位运行时)允许您在声明相应的ivar的情况下声明属性.例如,以下类将在10.5或iPhone(设备,而不是模拟器)上编译得很好:

@interface Foo : NSObject { }

  @property (retain) id someObject;

@end

@implementation Foo

  @synthesize someObject;

@end
Run Code Online (Sandbox Code Playgroud)

理解上面是一个完全有效的Objective-C类,假设我决定编写一个初始化程序,并且出于内存管理的目的,使用dealloc方法(因为在iPhone上没有GC).我读过有关初始化器和释放器的所有内容都会让我编写以下两种方法:

- (id) init {
  if (self = [super init]) {
    //initialize the value of someObject to nil
    [self setSomeObject:nil];
  }
  return self;
}

- (void) dealloc {
  //setting someObject to nil will release the previous value
  [self setSomeObject:nil];
  [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

但是,根据文件和流行的观点,这是"错误的".所以我的问题是这样的:

  1. 如何在不使用访问器的情况下初始化someObject?您可能会说编译器(或运行时或其他)将确保someObject已设置为nil,但我相信依赖它会是不正确的行为.在C语言中有一个不错的背景,由于没有正确初始化变量,我看到了相当数量的错误,这似乎没有什么不同.
  2. 如果我不应该在dealloc方法中使用访问器,我该如何释放someObject?

如果其中任何一个的答案是"你不能",那么在init和dealloc方法中使用访问器怎么可能不好?

initialization properties objective-c accessor dealloc

24
推荐指数
2
解决办法
5180
查看次数