C#のExtension Method

C#ではExtension Methodという便利な仕組みがあるそうです。

使い方

using System;

public static class Extension
{
  public enum Fruit { apple, orange }

  public static string function(this Fruit fruit)
  {
    return fruit == Fruit.apple ? "apple" : "orange";
  }
}

public static class Example
{
  static void Main()
  {
    string fruit = Extension.function(Extension.Fruit.apple);
    Console.WriteLine("fruit: " + fruit);
  }
}

実行結果

fruit: apple

テキトウ過ぎるexampleですが、thisキーワードを使ってこんな感じで書けるみたいです。enum以外にもclass/struct/primitive valueなどにも使えるそうなので、便利そうな気がします。

リンク

How to: Implement and Call a Custom Extension Method (C# Programming Guide) | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/how-to-implement-and-call-a-custom-extension-method

Visual Studio 2017 Communityをオフライン環境でインストール

Visual Studio 2017 Communityのインストーラーは下記リンクからダウンロードですきますが、1MB程度の小さなファイルになっていて、インストール実行後に外部サイトよりダウンロードする形になっています。

Downloads | IDE, Code, & Team Foundation Server | Visual Studio
https://www.visualstudio.com/downloads/

そこで、予め必要なファイルをダウンロードしておきたい場合は次のようなコマンドでダウンロードできるようです。

vs_Community.exe --layout C:\vs2018offline --lang en-US ja-JP
(英語と日本語のコンポーネントをダウンロード)

※ダウンロード先がC:\vs2018offlineの場合

リンク

How to download Visual Studio 2017 Community Edition for offline installation? – Stack Overflow
https://stackoverflow.com/questions/42653840/how-to-download-visual-studio-2017-community-edition-for-offline-installation

『Visual Studio 2017』をオフラインでインストールする方法 – Qiita
https://qiita.com/takamon9/items/b3effb7701bb304c0a68

ファーシェーダー

ファーシェーダーを試してみました。

fur

参考にさせてもらったのはこちらのサイトです。

[HoloLens]ファーシェーダを試してみた話 | HI-ROM.COM BLOG
http://hi-rom.com/blog/archives/2020

[Unity] ファーシェーダを移植してみた – Qiita
https://qiita.com/edo_m18/items/75db04f117355adcadbb

[Unity] AssetStoreのファーシェーダをupdateしたので分かったことを書いてみる – Qiita
https://qiita.com/edo_m18/items/21d3b37596da3fd4b32b

ジオメトリーシェーダーを使う方法もあるみたいです。