2016-05-25 2 views
1

I tl-Compilers bin mit Schema in https://core.telegram.org/mtproto in C# Telegramm Api TLConvert TL Sprache (mtproto) Typ C#

beschrieben zu kompilieren

Es gibt einen Compiler, die tl-Sprache C# -Klassen kompilieren https://github.com/everbytes/SharpTL.Compiler

Aber es kann in dieser Zeile neues Telegramm Schema kompilieren:

"params":[ 
    {"name":"flags","type":"#"}, 
    {"name":"report_spam","type":"flags.0?true"}] 
,"type":"PeerSettings"} 

Und es es zu falschem Code kompilieren:

[TLObject(0x818426CD)] 
public partial class PeerSettings : IPeerSettings 
{ 
    [TLProperty(1)] 
    public I# Flags { get; set; } 

    [TLProperty(2)] 
    public IFlags0?true ReportSpam { get; set; } 

} 

Gibt es eine Lösung beim Gießen in C# -Codes?

Ich weiß nicht, was Typ dieser ist "Flags: #" in C#

Diese Art "#" in https://core.telegram.org/mtproto/TL-formal

user {flags:#} id:flags.0?string first_name:flags.1?string last_name:flags.2?string reserved3:flags.3?False reserved4:flags.4?False = User flags; 

In Zukunft beschrieben, Bits 3 und 4 in den Flaggen Feld kann neue Felder nach den Namen zu ändern und die Typen der Reserved3 und reserved4 Felder

+0

Es ist wie die Eigenschaft scheint eine zählbare von iFlags: „public IFLAGS {get; set;} "Gegeben" # "scheint die Menge der IFlag-Typen/Werte zu definieren. –

+0

Flag # ist ein Integer-Typ, der als Flag verwendet wird, um anzugeben, welche markierten Felder vorhanden sind (beim Empfang) oder welche markierten Felder Sie einschließen (beim Senden) –

Antwort

0

Dies bedeutet int nach TLGenerator

0
012 zu übertragen, verwendet werden,

tief Suche, um dieses Ich denke, diese Raute (#) bedeutet, dass dynamische Wert der Variablen, es in einigen Fällen wahr oder falsch sein können, eine andere Fälle kann eine Folge von ganzen Zahlen nicht negative:

matrix {X:Type} m:# n:# a:(%Tuple (%Tuple X m) n) = Matrix X; 

oben wir die M und N, die einen ganzzahligen Zufallswert> 0 bekamen

get_users req_fields:# ids:%(Vector int) = Vector %(User req_fields) 

in diesem anderen Fall kann es einen bedingten Wert annimmt
Variable req_fields auf Benutzerobjekt nur gegossen wird, aber in anderen Fällen könnte es gegossen werden
zu einer anderen Art von Objekt.

vielleicht der richtige Weg, dieses TLObject in C# ist:

[TLObject(0x818426CD)] 
public partial class PeerSettings : IPeerSettings 
{ 
    [TLProperty(1)] 
    public int Flags { get; set; } 

    [TLProperty(2)] 
    public bool ReportSpam { get; set; } 

} 

entschuldigt mein Englisch rostig ist