C#で数値を文字列に変換したり文字列を数値に変換したりする方法

C#で数値を文字列に変換したり文字列を数値に変換したりする方法のまとめ。

数値 ⇒ 文字列の変換

数値から文字列への変換にはToString()が使えます。

サンプルコード

using System;

public class Example1
{
  public static void Main()
  {
    int value1 = 123;
    float value2 = 456.78f;

    Console.WriteLine("value1 = " + value1.ToString());
    Console.WriteLine("value2 = " + value2.ToString());
  }
}

実行結果

value1 = 123
value2 = 456.78

文字列 ⇒ 数値の変換

文字列から数値への変換はParse()が使えます。
例外を発生させたくない場合はTryParse()も使えます。

サンプルコード

using System;

public class Example2
{
  public static void Main()
  {
    try
    {
      int value1 = int.Parse("123");
      float value2 = float.Parse("456.78");

      Console.WriteLine("value1 = " + value1);
      Console.WriteLine("value2 = " + value2);
    }
    catch (FormatException)
    {
    }
  }
}

実行結果

value1 = 123
value2 = 456.78

文字列 ⇒ 数値の変換(TryParse編)

サンプルコード

using System;

public class Example3
{
  public static void Main()
  {
    if (int.TryParse("123", out int value1))
    {
      Console.WriteLine("value1 = " + value1);
    }
    if (float.TryParse("456.78", out float value2))
    {
      Console.WriteLine("value2 = " + value2);
    }
  }
}

実行結果

value1 = 123
value2 = 456.78

リンク

How to convert a string to a number – C# Programming Guide | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/how-to-convert-a-string-to-a-number

UnityのDefault Screen Width/Heightが反映されない時に試してみたいこと

Project SettingsのDefault Screen Width/Default Screen Heightを変更しても、画面サイズが変らないという場合はレジストリに以前の設定が残っている場合があるみたいです。

具体的には、レジストリComputer\HKEY_CURRENT_USER\Software\<Company Name>\<Product Name>\

  • Screenmanager Resolution Width_
  • Screenmanager Resolution Height_
  • Screenmanager Fullscreen mode_

から始まるキーを削除すれば、変更後のサイズで実行されるようになるみたいです。

<Company Name><Product Name>はProject Settingsで設定したCompany NameProduct Nameに読み替えてください。

ご注意

レジストリ操作を誤るとPCが起動しなくなってしまうなどの障害が発生する可能性があります。レジストリ操作を行う場合は必ずバックアップを作成の上、自己責任において実行してください。

リンク

Default Screen Dimensions Being Ignored After Build – Unity Forum
https://forum.unity.com/threads/default-screen-dimensions-being-ignored-after-build.500178/

Git LFSをプライベートサーバーで運用する方法について

GitはGitHubを使いつつ、Git LFSはローカルのプライベートサーバーで運用する方法について調べてみました。(VPSなどで運用することもできますが、セキュリティには気を付けてください。)

※GitHubの無料プランではGit LFSのストレージ容量が1GBかつ転送量も1GB/月という制限があり、この制限を回避したいという理由です。

Git LFSに対応した実装はGit LFSのWikiにまとめられていますが、今回はgiftlessというPythonで実装されたものを使ってみました。

giftlessをサーバーにインストール

ソースコードのダウンロード

$ git clone https://github.com/datopian/giftless.git
$ cd giftless

Pythonの環境構築

$ python3 -m venv venv
$ source venv/bin/activate
(venv) $ pip install -r requirements.txt

pip installの代わりにpip3 installとする場合もあります。
invalid command 'bdist_wheel'というエラーが発生する場合はpip install wheelもしくはpip3 install wheelでうまくいく場合もあるみたいです。

giftlessの設定

$ vi giftless.conf.yaml
$ cat giftless.conf.yaml
# Giftless configuration
AUTH_PROVIDERS:
  - giftless.auth.allow_anon:read_write

giftlessの起動

(venv) $ GIFTLESS_CONFIG_FILE=giftless.conf.yaml ./flask-develop.sh

※他のPCからアクセスしたい場合は-hオプションでホストを指定する必要があります。
※ポート番号はデフォルトで5000番となっています。変更したい場合は-pオプションを使います。

(venv) $ GIFTLESS_CONFIG_FILE=giftless.conf.yaml ./flask-develop.sh -h 0.0.0.0 -p 8080

giftlessの起動方法

インストール完了後は下記のコマンドを実行することでgitflessを起動できます。

$ cd giftless
$ python3 -m venv venv
$ source venv/bin/activate
(venv) $ GIFTLESS_CONFIG_FILE=giftless.conf.yaml ./flask-develop.sh -h 0.0.0.0 -p 8080

Git LFSの使い方

giftlessの使い方としては特別なことはありませんが、簡単に紹介してみます。

リポジトリの複製

$ git clone [email protected]:yourname/example.git
$ cd example

Git LFSのインストール

$ git lfs install

Git LFSで管理したいファイルの設定

$ git lfs track file.zip
$ git lfs track "*.bin"
$ git lfs track "data/*"

Git LFSのURLを設定

$ git config -f .lfsconfig lfs.url "http://123.456.789.012:5000/yourname/example"

/yourname/exampleの部分は階層を増やしたり減らしたり好きなように設定にできるみたいです。
git config --add lfs.url "http://123.456.789.012:5000/"とすることもできますが、この場合、新しくgit cloneした時にGit LFSで管理しているファイルの取得でエラーが発生してしまいます。再度lfs.urlを設定した後にgit pullしてみてください。

作業した結果を反映

$ git add -A
$ git commit -m "コメント"
$ git push

Git LFSのアンインストール

$ git lfs uninstall

リンク

Implementations · git-lfs/git-lfs Wiki · GitHub
https://github.com/git-lfs/git-lfs/wiki/Implementations

GitHub – datopian/giftless
https://github.com/datopian/giftless

Git Large File Storage
https://git-lfs.github.com/