Как мне получить доступ к значению из метода моего простого типа? - PullRequest
0 голосов
/ 24 января 2020

Если я хочу создать свой простой тип, как я могу получить доступ к его значению из метода типа?
Например:

[IntegerType (rank = 6, signed = true, width = 32)]
[SimpleType]
[CCode (has_type_id = false)]
struct foo_t {
    public string say_hello(){
        return(@"Hello from new foo_t type");
    }
    public int x10(){
        return this.value * 10;
    }
}

Здесь this.value выдает ошибку The name 'value' does not exist.
say_hello отлично работает.

1 Ответ

0 голосов
/ 24 января 2020

Ответ был предельно прост, скрытого поля value нет, просто this - текущее значение.

[IntegerType (rank = 6, signed = true, width = 32)]
[SimpleType]
[CCode (has_type_id = false)]
struct foo_t {
    public int x10(){
        return this * 10;
    }
}
void main () {
    foo_t foo = 5;
    prin(foo.x10());
}


[Print]
inline void prin (string str) {
    stdout.printf (str + "\n");
}

Работает нормально!

...