<span class="hljs-keyword">using</span> <span class="hljs-built_in">DBus</span>;
<span class="hljs-class"><span class="hljs-keyword">namespace</span> <span class="hljs-title">Test</span> </span>{
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Foo</span> : <span class="hljs-title">Object</span> </span>{
<span class="hljs-keyword">public</span> <span class="hljs-keyword">signal</span> <span class="hljs-keyword">void</span> some_event (); <span class="hljs-comment">// definition of the signal</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> method () {
some_event (); <span class="hljs-comment">// emitting the signal (callbacks get invoked)</span>
}
}
}
<span class="hljs-comment">/* defining a class */</span>
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Track</span> : <span class="hljs-title">GLib</span>.<span class="hljs-title">Object</span>, <span class="hljs-title">Test</span>.<span class="hljs-title">Foo</span> </span>{ <span class="hljs-comment">/* subclassing 'GLib.Object' */</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">double</span> mass; <span class="hljs-comment">/* a public field */</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">double</span> name { <span class="hljs-keyword">get</span>; <span class="hljs-keyword">set</span>; } <span class="hljs-comment">/* a public property */</span>
<span class="hljs-keyword">private</span> <span class="hljs-keyword">bool</span> terminated = <span class="hljs-literal">false</span>; <span class="hljs-comment">/* a private field */</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> terminate() { <span class="hljs-comment">/* a public method */</span>
terminated = <span class="hljs-literal">true</span>;
}
}
<span class="hljs-keyword">const</span> ALL_UPPER_CASE = <span class="hljs-string">"you should follow this convention"</span>;
<span class="hljs-keyword">var</span> t = <span class="hljs-keyword">new</span> Track(); <span class="hljs-comment">// same as: Track t = new Track();</span>
<span class="hljs-keyword">var</span> s = <span class="hljs-string">"hello"</span>; <span class="hljs-comment">// same as: string s = "hello";</span>
<span class="hljs-keyword">var</span> l = <span class="hljs-keyword">new</span> List<<span class="hljs-keyword">int</span>>(); <span class="hljs-comment">// same as: List<int> l = new List<int>();</span>
<span class="hljs-keyword">var</span> i = <span class="hljs-number">10</span>; <span class="hljs-comment">// same as: int i = 10;</span>
<span class="hljs-meta">#if (ololo)</span>
Regex regex = /foo/;
<span class="hljs-meta">#endif</span>
<span class="hljs-comment">/*
* Entry point can be outside class
*/</span>
<span class="hljs-keyword">void</span> main () {
<span class="hljs-keyword">var</span> long_string = <span class="hljs-string">"""
Example of "verbatim string".
Same as in @"string" in C#
"""</span>
<span class="hljs-keyword">var</span> foo = <span class="hljs-keyword">new</span> Foo ();
foo.some_event.connect (callback_a); <span class="hljs-comment">// connecting the callback functions</span>
foo.some_event.connect (callback_b);
foo.method ();
}