Какие языки имеют свойства, которые могут иметь назначенные методы получения и установки? - PullRequest
1 голос
/ 18 мая 2009

Java нет. (Это просто соглашение)

Делфи делает. Я верю, что C # делает.

Какие еще языки делают?

Edit: Я должен был привести пример:

Delphi: (будьте осторожны, это было давно, я могу ошибаться)

 type
   TSomething = class
   fEmployeeNum: String;
    property employeeNum: String read fEmployeeNum write setEmployeeNum;
   end;

 procedure TSomething.setEmployeeNum(var val: String);
 begin
   fEmployeeNum := val;
 end;

Ответы [ 7 ]

3 голосов
/ 18 мая 2009

Python делает.

class SomeClass( object ):
def f_get( self ):
    return self.value
fprop = property( f_get )

Код для сеттера аналогичен.

3 голосов
/ 18 мая 2009

Ruby проходит через attr_reader, attr_writer и attr_accessor (для чтения / записи):

class SomeClass
  attr_reader :foo #read-only
  attr_writer :bar #write-only
  attr_accessor :baz #read and write

  ...
end
3 голосов
/ 18 мая 2009

C # делает (просто для примера):

class Foo
{
    public string Bar { get; private set; }
    public string Bargain
    {
        get { return this._Bargain; }
        set { this._Bargain = value; }
    }
    private string _Bargain;
}
1 голос
/ 18 мая 2009

C ++ не соответствует стандарту, но вы можете создать емкость с помощью шаблонов.

1 голос
/ 18 мая 2009

VB.NET использует ключевое слово Property.

0 голосов
/ 19 мая 2009

В Perl 6,

use v6;

sub foo() is rw {
    state $foo;
    return new Proxy:
        FETCH => method { return $foo },
        STORE => method($to) { $foo = $to };
}

foo = "Hello, world!";
say foo;

... по крайней мере, в теории. Кажется, не работает с Rakudo r38250.

0 голосов
/ 18 мая 2009

цель c и вы можете лениться с ключевым словом synthesize.

...