| 
    Enhanced C#
    
   Language of your choice: library documentation 
   | 
 
A list of symbols that are very specific to C# or Enhanced C#. Note: many symbols Loyc.Syntax.CodeSymbols should be in this class instead, but this class was created very belatedly. More...
  
A list of symbols that are very specific to C# or Enhanced C#. Note: many symbols Loyc.Syntax.CodeSymbols should be in this class instead, but this class was created very belatedly.
Public static fields | |
| static new readonly Symbol | PtrArrow = GSymbol.Get("'->") | 
| "'->": a->b <=> ‘’->`(a, b)  | |
| static new readonly Symbol | Async = GSymbol.Get("#async") | 
| [#async] Task Foo(); <=> async Task Foo();  | |
| static new readonly Symbol | Await = GSymbol.Get("await") | 
| await(x); <=> await x; (TENTATIVE: should this be changed to #await?)  | |
| static new readonly Symbol | DictionaryInitAssign = GSymbol.Get("'[]=") | 
| ‘’[]=‘(0, 1, x) <=> [0,1]=x (only supported in 'new’ initializer blocks)  | |
| static readonly Symbol | ForwardPipeArrow = GSymbol.Get("'|>") | 
| ‘’|>`(a, b) <=> a |> b  | |
| static readonly Symbol | NullForwardPipeArrow = GSymbol.Get("'?|>") | 
| ‘’?|>`(a, b) <=> a ?|> b  | |
| static new readonly Symbol | TriviaCsRawText = GSymbol.Get("%C#RawText") | 
"%C#RawText" - C#RawText("stuff") - Raw text that is only printed by the C# printer (not printers for other languages)  | |
| static new readonly Symbol | TriviaCsPPRawText = GSymbol.Get("%C#PPRawText") | 
"%C#PPRawText" - C#PPRawText("#stuff") - Raw text that is guaranteed to be preceded by a newline and is only printed by the C# printer  | |
| static new readonly Symbol | CsRawText = GSymbol.Get("#C#RawText") | 
| static new readonly Symbol | CsPPRawText = GSymbol.Get("#C#PPRawText") | 
| "#C#PPRawText" - Preprocessor raw text: always printed on separate line  | |
| static readonly Symbol | PPNullable = GSymbol.Get("##nullable") | 
| static readonly Symbol | CsiReference = GSymbol.Get("##reference") | 
| static readonly Symbol | CsiLoad = GSymbol.Get("##load") | 
| static readonly Symbol | CsiCls = GSymbol.Get("##cls") | 
| static readonly Symbol | CsiClear = GSymbol.Get("##clear") | 
| static readonly Symbol | CsiHelp = GSymbol.Get("##help") | 
| static readonly Symbol | CsiReset = GSymbol.Get("##reset") | 
  Public static fields inherited from Loyc.Syntax.CodeSymbols | |
| static readonly Symbol | Mul = GSymbol.Get("'*") | 
| "*" Multiplication (or dereference)  | |
| static readonly Symbol | Div = GSymbol.Get("'/") | 
| "/" Division  | |
| static readonly Symbol | Add = GSymbol.Get("'+") | 
| "+" Addition or unary +  | |
| static readonly Symbol | Sub = GSymbol.Get("'-") | 
| "-" Subtraction or unary -  | |
| static readonly Symbol | _Dereference = GSymbol.Get("'*") | 
| Alias for Mul.  | |
| static readonly Symbol | _Pointer = GSymbol.Get("'*") | 
| Alias for Mul.  | |
| static readonly Symbol | _UnaryPlus = GSymbol.Get("'+") | 
| Alias for Add.  | |
| static readonly Symbol | _Negate = GSymbol.Get("'-") | 
| Alias for Sub. Infix and prefix operators use same symbol.  | |
| static readonly Symbol | PreInc = GSymbol.Get("'++") | 
| "++" Unary prefix increment  | |
| static readonly Symbol | PreDec = GSymbol.Get("'--") | 
| "--" Unary prefix decrement  | |
| static readonly Symbol | PostInc = GSymbol.Get("'suf++") | 
| "suf++" Unary suffix increment  | |
| static readonly Symbol | PostDec = GSymbol.Get("'suf--") | 
| "suf--" Unary suffix decrement  | |
| static readonly Symbol | Mod = GSymbol.Get("'%") | 
| "%" Remainder operator  | |
| static readonly Symbol | And = GSymbol.Get("'&&") | 
| "&&" Logical short-circuit 'and' operator  | |
| static readonly Symbol | Or = GSymbol.Get("'||") | 
| "||" Logical short-circuit 'or' operator  | |
| static readonly Symbol | Xor = GSymbol.Get("'^^") | 
| "^^" Logical 'xor' operator (tentative–this operator is redundant, "!=" is equivalent)  | |
| static readonly Symbol | Eq = GSymbol.Get("'==") | 
| "==" Equality test operator  | |
| static readonly Symbol | NotEq = GSymbol.Get("'!=") | 
| "!=" Inequality test operator  | |
| static readonly Symbol | Neq = GSymbol.Get("'!=") | 
| "!=" Inequality test operator  | |
| static readonly Symbol | GT = GSymbol.Get("'>") | 
| ">" Greater-than operator  | |
| static readonly Symbol | GE = GSymbol.Get("'>=") | 
| ">=" Greater-than-or-equal-to operator  | |
| static readonly Symbol | LT = GSymbol.Get("'<") | 
| "<" Less-than operator  | |
| static readonly Symbol | LE = GSymbol.Get("'<=") | 
| "<=" Less-than-or-equal-to operator  | |
| static readonly Symbol | Matches = GSymbol.Get("'=~") | 
| "=~" Pattern match test operator  | |
| static readonly Symbol | Compare = GSymbol.Get("'<=>") | 
| "<=>" Three-way comparison a.k.a. shaceship operator  | |
| static readonly Symbol | Shr = GSymbol.Get("'>>") | 
| ">>" Right-shift operator  | |
| static readonly Symbol | Shl = GSymbol.Get("'<<") | 
| "<<" Left-shift operator  | |
| static readonly Symbol | Not = GSymbol.Get("'!") | 
| "!" Logical 'not' operator  | |
| static readonly Symbol | Assign = GSymbol.Get("'=") | 
| "=" Assignment operator  | |
| static readonly Symbol | ForwardAssign = GSymbol.Get("'|=>") | 
Assignment operator with reversed argument order (designed to resemble the pipe operator |>)  | |
| static readonly Symbol | ForwardNullCoalesceAssign = GSymbol.Get("'?|=>") | 
| Null-coalescing assignment with reversed argument order.  | |
| static readonly Symbol | OrBits = GSymbol.Get("'|") | 
| "|" Bitwise or operator  | |
| static readonly Symbol | AndBits = GSymbol.Get("'&") | 
| "&" Bitwise and operator. Also, address-of (unary &)  | |
| static readonly Symbol | _AddressOf = GSymbol.Get("'&") | 
| Alias for AndBits.  | |
| static readonly Symbol | NotBits = GSymbol.Get("'~") | 
| Unary bitwise inversion operator.  | |
| static readonly Symbol | _Concat = GSymbol.Get("'~") | 
| Alias for NotBits. Concat operator in D.  | |
| static readonly Symbol | _Destruct = GSymbol.Get("'~") | 
| Alias for NotBits.  | |
| static readonly Symbol | XorBits = GSymbol.Get("'^") | 
| "^" Bitwise exclusive-or operator  | |
| static readonly Symbol | Braces = GSymbol.Get("'{}") | 
| "{}" Creates a scope.  | |
| static readonly Symbol | IndexBracks = GSymbol.Get("'suf[]") | 
| static readonly Symbol | Array = GSymbol.Get("'[]") | 
| Used for list/array literals. Not used for attributes.  | |
| static readonly Symbol | _Bracks = Array | 
| Synonym for Array (‘’[]`)  | |
| static readonly Symbol | TwoDimensionalArray = GSymbol.Get("'[,]") | 
| int[,] <=> @'of(‘’[,]`, int)  | |
| static readonly Symbol | Async = GSymbol.Get("#async") | 
| [#async] Task Foo(); <=> async Task Foo();  | |
| static readonly Symbol | Await = GSymbol.Get("await") | 
| await(x); <=> await x; (TENTATIVE: should this be changed to #await?)  | |
| static readonly Symbol | NullIndexBracks = GSymbol.Get("'?[]") | 
| <tt>?[](foo, #(1, A)) <=> foo?[1, A] (TENTATIVE, may be changed later)  More... | |
| static readonly Symbol | InitializerAssignment = GSymbol.Get("'[]=") | 
| ‘’[]=`(0, 1, x) <=> [0,1]=x  | |
| static readonly Symbol | AltList = GSymbol.Get("#") | 
# is used for lists of things in definition constructs, e.g. #class(Derived, #(Base, IEnumerable), {...}). For a time, 'tuple was used for this purpose; the problem is that a find-and-replace operation intended to find run-time tuples could accidentally match one of these lists. So I decided to dedicate # for use inside special constructs; its meaning depends on context.  More... | |
| static readonly Symbol | _HashMark = GSymbol.Get("#") | 
| static readonly Symbol | QuestionMark = GSymbol.Get("'?") | 
"'?" Conditional operator. (a?b:c) <=> ‘’?(a,b,c) and int? <=> @'of(@'?`, int)  | |
| static readonly Symbol | Of = GSymbol.Get("'of") | 
| "'of" for giving generic arguments. @'of(List,int) <=> List<int>  | |
| static readonly Symbol | Dot = GSymbol.Get("'.") | 
| "'." binary dot operator, e.g. string.Join  | |
| static readonly Symbol | NamedArg = GSymbol.Get("'::=") | 
| "'::=" Named argument e.g. ‘’::=`(x, 0) <=> x: 0  | |
| static readonly Symbol | New = GSymbol.Get("'new") | 
| "'new": new Foo(x) { a } <=> <tt>'new(Foo(x), a); new[] { ... } <=> <tt>'new(<tt>[](), ...)  | |
| static readonly Symbol | NewAttribute = GSymbol.Get("#new") | 
| "#new": public new void Foo() {} <=> [#public, #new] #fn(#void, Foo, #(), {})  | |
| static readonly Symbol | Out = GSymbol.Get("#out") | 
| "#out": out x <=> [#out] x  | |
| static readonly Symbol | Ref = GSymbol.Get("#ref") | 
| "#ref": ref int x <=> [#ref] #var(#int, x)  | |
| static readonly Symbol | Sizeof = GSymbol.Get("'sizeof") | 
| "'sizeof" sizeof(int) <=> @'sizeof(int)  | |
| static readonly Symbol | Typeof = GSymbol.Get("'typeof") | 
| static readonly Symbol | As = GSymbol.Get("'as") | 
| "'as": @'as(x,string) <=> x as string <=> x(as string)  | |
| static readonly Symbol | Is = GSymbol.Get("'is") | 
| "'is": @'is(x,string) <=> x is string, @'is(x,#var(Foo,v),#(y,z)) <=> x is Foo v(y, z)  | |
| static readonly Symbol | Cast = GSymbol.Get("'cast") | 
| "'cast": @'cast(x,int) <=> (int)x <=> x(-> int)  | |
| static readonly Symbol | NullCoalesce = GSymbol.Get("'??") | 
| "'??": a ?? b <=> ‘’??`(a, b)  | |
| static readonly Symbol | PtrArrow = GSymbol.Get("'->") | 
| static readonly Symbol | ColonColon = GSymbol.Get("'::") | 
| "'::" Scope resolution operator in many languages  | |
| static readonly Symbol | Lambda = GSymbol.Get("'=>") | 
| "'=>" used to define an anonymous function  | |
| static readonly Symbol | Default = GSymbol.Get("'default") | 
| "'default" for the default(T) pseudofunction in C#  | |
| static readonly Symbol | IS = GSymbol.Get("'IS") | 
Backquoted suffixes in LES3 use this: xbytes <=> 'IS(x, bytes)  | |
| static readonly Symbol | NullCoalesceAssign = GSymbol.Get("'??=") | 
"'??=": a ??= b means a = a ?? b  | |
| static readonly Symbol | MulAssign = GSymbol.Get("'*=") | 
| "'*=" multiply-and-set operator  | |
| static readonly Symbol | DivAssign = GSymbol.Get("'/=") | 
| "'/=" divide-and-set operator  | |
| static readonly Symbol | ModAssign = GSymbol.Get("'%=") | 
| "'%=" set-to-remainder operator  | |
| static readonly Symbol | SubAssign = GSymbol.Get("'-=") | 
| "'-=" subtract-and-set operator  | |
| static readonly Symbol | AddAssign = GSymbol.Get("'+=") | 
| "'+=" add-and-set operator  | |
| static readonly Symbol | ConcatAssign = GSymbol.Get("'~=") | 
| "'~=" concatenate-and-set operator  | |
| static readonly Symbol | ShrAssign = GSymbol.Get("'>>=") | 
| "'>>=" shift-right-by operator  | |
| static readonly Symbol | ShlAssign = GSymbol.Get("'<<=") | 
| "'<<=" shift-left-by operator  | |
| static readonly Symbol | ExpAssign = GSymbol.Get("'**=") | 
| "'**=" raise-to-exponent-and-set operator  | |
| static readonly Symbol | XorBitsAssign = GSymbol.Get("'^=") | 
| "'^=" bitwise-xor-by operator  | |
| static readonly Symbol | AndBitsAssign = GSymbol.Get("'&=") | 
| "'&=" bitwise-and-with operator  | |
| static readonly Symbol | OrBitsAssign = GSymbol.Get("'|=") | 
| "'|=" set-bits operator  | |
| static readonly Symbol | If = GSymbol.Get("#if") | 
| e.g. #if(c,x,y) and #if(c,x); I wanted it to be the conditional operator too, but the semantics are a bit different  | |
| static readonly Symbol | DoWhile = GSymbol.Get("#doWhile") | 
| e.g. #doWhile(x++, condition); <=> do x++; while(condition);  | |
| static readonly Symbol | While = GSymbol.Get("#while") | 
| e.g. #while(condition,{...}); <=> while(condition) {...}  | |
| static readonly Symbol | UsingStmt = GSymbol.Get("#using") | 
| e.g. #using(expr, {...}); <=> using(expr) {...} (note: use #import or CodeSymbols.Import for a using directive)  | |
| static readonly Symbol | For = GSymbol.Get("#for") | 
| e.g. #for(int i = 0, i < Count, i++, {...}); <=> for(int i = 0; i < Count; i++) {...}  | |
| static readonly Symbol | ForEach = GSymbol.Get("#foreach") | 
| e.g. #foreach(#var(@``, n), list, {...}); <=> foreach(var n in list) {...}  | |
| static readonly Symbol | Label = GSymbol.Get("#label") | 
| e.g. #label(success) <=> success:  | |
| static readonly Symbol | Case = GSymbol.Get("#case") | 
| e.g. #case(10, 20) <=> case 10, 20:  | |
| static readonly Symbol | Return = GSymbol.Get("#return") | 
| e.g. #return(x); <=> return x; [#yield] #return(x) <=> yield return x;  | |
| static readonly Symbol | Continue = GSymbol.Get("#continue") | 
| e.g. #continue(); <=> continue;  | |
| static readonly Symbol | Break = GSymbol.Get("#break") | 
| e.g. #break(); <=> break;  | |
| static readonly Symbol | Goto = GSymbol.Get("#goto") | 
| e.g. #goto(label) <=> goto label;  | |
| static readonly Symbol | GotoCase = GSymbol.Get("#gotoCase") | 
| e.g. #gotoCase(expr) <=> goto case expr;  | |
| static readonly Symbol | Throw = GSymbol.Get("#throw") | 
| e.g. #throw(expr); <=> throw expr;  | |
| static readonly Symbol | Checked = GSymbol.Get("#checked") | 
| e.g. #checked({ stmt; }); <=> checked { stmt; }  | |
| static readonly Symbol | Unchecked = GSymbol.Get("#unchecked") | 
| e.g. #unchecked({ stmt; }); <=> unchecked { stmt; }  | |
| static readonly Symbol | Fixed = GSymbol.Get("#fixed") | 
| e.g. #fixed(#var(@'of(‘’*`, #int32), x = &y), stmt); <=> fixed(int* x = &y) stmt;  | |
| static readonly Symbol | Lock = GSymbol.Get("#lock") | 
| e.g. #lock(obj, stmt); <=> lock(obj) stmt;  | |
| static readonly Symbol | Switch = GSymbol.Get("#switch") | 
| static readonly Symbol | SwitchStmt = GSymbol.Get("#switch") | 
| e.g. #switch(n, { ... }); <=> switch(n) { ... }  | |
| static readonly Symbol | SwitchExpr = GSymbol.Get("'switch") | 
| e.g. @'switch(x, { ... }); <=> x switch { ... }  | |
| static readonly Symbol | Try = GSymbol.Get("#try") | 
| e.g. #try({...}, #catch(<tt>, @, {...})); <=> try {...} catch {...}  | |
| static readonly Symbol | Catch = GSymbol.Get("#catch") | 
| "#catch" catch clause of #try statement: #catch(#var(Exception,e), whenExpr, {...})  | |
| static readonly Symbol | Finally = GSymbol.Get("#finally") | 
| "#finally" finally clause of #try statement: #finally({...})  | |
| static readonly Symbol | Class = GSymbol.Get("#class") | 
| e.g. #class(Foo, #(IFoo), { }); <=> class Foo : IFoo { }  | |
| static readonly Symbol | Struct = GSymbol.Get("#struct") | 
| e.g. #struct(Foo, #(IFoo), { }); <=> struct Foo : IFoo { }  | |
| static readonly Symbol | Trait = GSymbol.Get("#trait") | 
| e.g. #trait(Foo, #(IFoo), { }); <=> trait Foo : IFoo { }  | |
| static readonly Symbol | Enum = GSymbol.Get("#enum") | 
| e.g. #enum(Foo, #(byte), { }); <=> enum Foo : byte { }  | |
| static readonly Symbol | Alias = GSymbol.Get("#alias") | 
| static readonly Symbol | Interface = GSymbol.Get("#interface") | 
| e.g. #interface(IB, #(IA), { }); <=> interface IB : IA { }  | |
| static readonly Symbol | Namespace = GSymbol.Get("#namespace") | 
| e.g. #namespace(NS, @``, { }); <=> namespace NS { }  | |
| static readonly Symbol | Var = GSymbol.Get("#var") | 
| e.g. #var(#int32, x = 0, y = 1, z); #var(@``, x = 0) <=> var x = 0;  | |
| static readonly Symbol | Event = GSymbol.Get("#event") | 
| e.g. #event(EventHandler, Click, { }) <=> event EventHandler Click { }  | |
| static readonly Symbol | Delegate = GSymbol.Get("#delegate") | 
| e.g. #delegate(#int32, Foo, @'tuple()); <=> delegate int Foo();  | |
| static readonly Symbol | Property = GSymbol.Get("#property") | 
| e.g. #property(#int32, Foo, @``, { get; }) <=> int Foo { get; }  | |
| static readonly Symbol | Where = GSymbol.Get("#where") | 
| "#where" e.g. class Foo<T> where T:class, Foo {} <=> #class(@'of(Foo, [#where(#class, Foo)] T), #(), {});  | |
| static readonly Symbol | This = GSymbol.Get("#this") | 
| "#this" e.g. this.X <=> #this.X; this(arg) <=> #this(arg).  | |
| static readonly Symbol | Base = GSymbol.Get("#base") | 
| "#base" e.g. base.X <=> #base.X; base(arg) <=> #base(arg).  | |
| static readonly Symbol | Operator = GSymbol.Get("#operator") | 
| e.g. #fn(#bool, [#operator] ‘’==`, #(Foo a, Foo b))  | |
| static readonly Symbol | Implicit = GSymbol.Get("#implicit") | 
| e.g. [#implicit] #fn(#int32, [#operator] #cast, (Foo a,))  | |
| static readonly Symbol | Explicit = GSymbol.Get("#explicit") | 
| e.g. [#explicit] #fn(#int32, [#operator] #cast, (Foo a,))  | |
| static readonly Symbol | Missing = GSymbol.Empty | 
| Indicates that a syntax element was omitted, e.g. Foo(, y) => Foo(@``, y)  | |
| static readonly Symbol | Splice = GSymbol.Get("#splice") | 
| When a macro returns #splice(a, b, c), the argument list (a, b, c) is spliced into the surrounding code.  | |
| static readonly Symbol | Assembly = GSymbol.Get("#assembly") | 
| e.g. [assembly: Foo] <=> #assembly(Foo);  | |
| static readonly Symbol | Module = GSymbol.Get("#module") | 
| e.g. [module: Foo] <=> [Foo] #module;  | |
| static readonly Symbol | Import = GSymbol.Get("#import") | 
| #import is used instead of #using because the using(...) {...} statement already uses #using  More... | |
| static readonly Symbol | Partial = GSymbol.Get("#partial") | 
| static readonly Symbol | Yield = GSymbol.Get("#yield") | 
| e.g. #return(x); <=> return x; [#yield] #return(x) <=> yield return x;  | |
| static readonly Symbol | ArrayInit = GSymbol.Get("#arrayInit") | 
| C# e.g. int[] x = {1,2} <=> int[] x = #arrayInit(1, 2)  | |
| static readonly Symbol | StackAlloc = GSymbol.Get("#stackalloc") | 
| #stackalloc for C# stackalloc (TODO)  | |
 1.8.17