【日本の恥】ガーベジコレクションをガベージコレクションと言うのをそろそろ止めるべき

スペルミスは良くあることなので、気づいたら直せば良いのですが、和製英語は広く社会に認知されているのでどうしようもないのが困ります。

続きを読む 【日本の恥】ガーベジコレクションをガベージコレクションと言うのをそろそろ止めるべき

【C#】IDisposable を継承する際に Dispose パターンの知識が必要になる理由

SonarLint を使っていなければ気づかなかったシリーズ。
C# は C++ と比べて変なテクニックを山ほど覚える必要がなく、とても扱いやすい言語だと思っていたのですが、最近はそうでもないと思うようになってきました。

using System;

// ヒャッハー集団のベースクラス
public class HyahhaaBase : IDisposable {
  public virtual void Dispose() {
    // アンマネージドリソースを解放する処理
  }
}

// モヒカンヒャッハークラス
sealed class MohicanHyahhaa : HyahhaaBase {
  public override void Dispose() {
    // 子クラスのアンマネージドリソースを解放する処理
  }
}

このコードはメモリリークします。

SonarLint については以下の記事で簡単に紹介しています。

その他の、SonarLint を使っていなければ気づかなかったシリーズ。

続きを読む 【C#】IDisposable を継承する際に Dispose パターンの知識が必要になる理由

【Unity】ネンネンを Unity で確認するまでの手順【VR Chat】

ネンネンは AI VTuber 紡ネン の愛称です。

ネンネンの VR Chat モデルが BOOTH で販売されているので、支援するためと、VR Chat の技術に興味があったので購入しました。

購入ページに Unity にインポートする方法が記載されているのですが、いくつかつまづいた点があるので、補足を入れながら手順を説明します。

本稿で説明するのは、BOOTH で購入したネンネンのモデルを Unity で確認するところまでです。

続きを読む 【Unity】ネンネンを Unity で確認するまでの手順【VR Chat】

【C++】Visual Studio 2022 で OpenCV 4.8.0 を使えるようにする

OpenCV を使うために、NuGet パッケージをインストールしたんですが、まったく使い物にならないので、GitHub からバイナリパッケージをダウンロードしてインストールする必要がありました。

続きを読む 【C++】Visual Studio 2022 で OpenCV 4.8.0 を使えるようにする

【.Net C#】System.Exception を継承すると ISerializable がどうのこうのと警告が出る

厄介なバグに繋がる可能性があるコード

class Test {
  public class Hoge : System.Exception {}
}

続きを読む 【.Net C#】System.Exception を継承すると ISerializable がどうのこうのと警告が出る

【C#】Visual Studio 2022 で SonarLint を使ってソースコードをより堅牢にする

商業レベルの堅牢なソースコードを書くときに、とても役に立ちます。

続きを読む 【C#】Visual Studio 2022 で SonarLint を使ってソースコードをより堅牢にする

【.Net Visual Studio C#】クソコードを書いていないか手軽に確認する方法

Visual Studio を使い、自分がクソコードを書いてしまっていないかをパっと確認する方法です。

続きを読む 【.Net Visual Studio C#】クソコードを書いていないか手軽に確認する方法

【C++】const の扱いが複雑すぎる その2- 言語仕様で決まっていない運用面の問題について

C++ の const の基本的な使い方は以下の記事にまとめています。

今回は言語仕様で明確に決まっていないところ(運用面の問題)について説明します。

続きを読む 【C++】const の扱いが複雑すぎる その2- 言語仕様で決まっていない運用面の問題について

【コーディング】作って後悔したクラスー巨大なマネージャークラス

class なんかすごいマネージャー
{
 クラス A を生成
 クラス B を生成
 クラス C を…
 …以下、延々と続く

 クラス A を生成する前の準備
 クラス B を生成する前の準備
 クラス C を…
 …以下、延々と続く

 クラス B の状態を変える
 クラス D の状態を変える
 …以下、延々と続く

 クラス B の状態を返す
 クラス C の…
 …以下、延々と続く

 クラス A のコールバック先
 クラス B の…
 …以下、延々と続く
}

省略しているが、扱うクラスは10個以上。
メソッドの実装コードを含めると1000行を超える

続きを読む 【コーディング】作って後悔したクラスー巨大なマネージャークラス