ヨーロッパ人がオーストラリア大陸に上陸する以前のペンリスは、ダラグ人の部族であるマルゴア部族が居住していた。彼らは、「gunyahs」と呼ばれる間に合わせの帽子を被りカンガルーなどの野生動物やネピアン川の魚、ヤムイモなどを狩猟・採集する生活を営んできた。マルゴア部族の人々の多くは、ヨーロッパ人が持ち込んだ天然痘によって、彼らの上陸後に死に絶えた。
Deconstruct()メソッドが定義された型では、分解構文を利用することができる。拡張メソッドによる定義でも構わない。/// <summary>Deconstructメソッドを実装する型</summary>class Person {    public string Name { get; set; }    public int Age { get; set; }    /// <summary>分解メソッド</summary>    public void Deconstruct(out string name, out int age) {        name = Name;        age = Age;    }}var person = new Person() { Name = "Taro", Age = 18 };// 分解構文var (name, age) = person;// 以下のDeconstructメソッド呼び出しと同じperson.Deconstruct(out var name, out var age);
GetEnumerator()メソッドが定義された型では、foreach構文を利用することができる。/// <summary>GetEnumeratorメソッドを実装する型</summary>class DaysInMonths {    public IEnumerator<int> GetEnumerator() {        yield return 31; yield return 28; yield return 31;        yield return 30; yield return 31; yield return 30;        yield return 31; yield return 31; yield return 30;        yield return 31; yield return 30; yield return 31;    }}var months = new DaysInMonths();// foreach構文foreach (var days in months) {    Console.WriteLine(days);}
IEnumerableが実装されAdd()メソッドが定義された型では、コレクション初期化の構文を利用することができる。/// <summary>IEnumerableを実装、かつ、Addメソッドを持つ</summary>class MultiplyList : IEnumerable {    List<int> _list = new List<int>();    public void Add(int x) => _list.Add(x);    public void Add(int x, int y) => _list.Add(x * y);    public void Add(int x, int y, int z) => _list.Add(x * y * z);    IEnumerator IEnumerable.GetEnumerator() => _list.GetEnumerator();}// Add()のオーバーロードがそれぞれ呼び出される。var list = new MultiplyList() {    { 1 },    { 2, 3 },    { 4, 5, 6 },};
C#において、ダック・タイピング的な扱いを受ける例を下に示す。特定のメソッドが定義されていれば、クラス間の継承関係に関わらずC#の文法の恩恵を受けることができる。
stackallocで割り当てたメモリの代入が可能である。// C# 7.2から可能Span<int> span1 = stackalloc int[4];// C# 7.3から初期化子にも対応Span<int> span2 = stackalloc[] { 10, 20, 30, 40 };
式形式のラムダから暗黙の型変換が可能である。これによって、式木をシンプルに記述できる。// 本体が式のラムダ式をExpression型に格納することができる。System.Linq.Expressions.Expression<Func<int, int>> expression = x => x * x;// 本体がステートメントのラムダ式はExpressionとして扱えない。//System.Linq.Expressions.Expression<Func<int, int>> expression = x => { return x * x; };
挿入文字列リテラルから暗黙の型変換が可能である。// 書式指定可能(IFormattable)型で受け取ることができる。IFormattable fmt = $"id: {id:D}, money: {money:C}";var str = fmt.ToString(null, new System.Globalization.CultureInfo("ja-JP"));
2個以上の要素を持つValueTupleについては、例えば(string s, int n)と書くことでValueTuple<string, int>型の糖衣構文となる。また、例えば("answer", 42)と書くことで、リテラルを表記できる。
岐阜県養老郡養老町の養老山付近が水源。水源のひとつ滝谷には、「養老孝子伝説」で有名な養老の滝がある。滝谷は扇状地に入り涸れ谷となっている。この扇状地の扇端部の湧水帯で流れが現れ、ここから津屋川となる。津屋川は養老山地の複合扇状地の扇端に沿って、養老山地から流れ出るいくつかの流れを合流しながら、南西に流れる。海津市に入ると川幅が広がる。五三川と合流した後は、揖斐川と並行して流れ、海津市南濃町山崎付近で揖斐川と合流する。その合流部の少し北側に津屋川水門が設置されていて、さらにすぐ北側に岐阜県道8号津島南濃線の福岡大橋が架かる。海津市南濃町津屋辺りの堤防には、おおよそ3 kmにわたりヒガンバナの群生地がみられる。養老山地から流れ出る小倉谷は、完全なる天井川で、津屋川の上を一旦立体交差した後に津屋川に合流する。また、小倉谷は養老鉄道養老線の上も通過している。