【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 パターンの知識が必要になる理由” の続きを読む

山の牧場まとめと考察

私は北野誠の「茶屋町怪談」で聞いたのが最初だったと思います。
山の中にある不可解な牧場のお話です。

発見したのは【新耳袋】の著者、中山市朗 氏。
↑の動画で中山氏が話している内容を年代別にまとめました。
情報量が多いので、かなり長いです。

まとめの後、私が調べた内容を元に考察を行っていきます。
調査はネット情報(噂話などは除外し資料のみ)と書籍のみです。

この記事はまだまとめている最中なので、今後内容が変わる可能性があります。
いつどこが変更されたかが分かるよう、更新履歴を記載しています。

更新履歴

2023/08/17
「北野誠が夜中に目撃した光は何か?」
「謎のエンジン音について。」を追記。

2023/08/13
公開

“山の牧場まとめと考察” の続きを読む

【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- 言語仕様で決まっていない運用面の問題について” の続きを読む

【UE5】課金した美女にアニメーションして欲しい【欲望全開】

Unreal Engine 5.1.1 を使用

サードパーソンのテンプレートキャラクター『Quinn』をお気に入りのキャラに変えて動かしたい。

アニメーションして欲しいのはこちらのキャラです。
『魔女』と呼ぶことにします。

“【UE5】課金した美女にアニメーションして欲しい【欲望全開】” の続きを読む

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

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

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

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

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

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

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

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