※個人の感想です。
千差万別なので解決策は書いていません。というより書けない…
1.コードが断片である
1-1. Main
関数がない
static void Main(string[] args)
とかがない。
1-2. using
ディレクティブがない
using System.なんとか.かんとか;
がない。不足している。
1-3. Visual Studio前提のコード
Visual Studioで作成したコードの一部しか載せていない場合。
partial class
とかInitializeComponent
とかを使っているのはこのケースが多い。
2. 新しめのC#バージョンの機能を使用している
C#のバージョンごとの機能は、ここが詳しい。
https://ufcpp.net/study/csharp/
古いバージョンへのポーティング手法
https://ufcpp.net/study/csharp/cheatsheet/listfxlangversion/
タプル(Tuple
)とか?.
とか??=
とか$"{X}"
とか使ってたらバージョンによるものかもしれない。
3.コンパイルしていないコードが置かれている
あまりないけど、まれに。
コンパイルしたあとに修正したりして、コンパイル通らなくなったコードになってたり。
4.参照設定が必要なのに言及がない / ライブラリのバージョンが合わない
説明が書かれているケースが多いが、環境が違うとハードル高い。
Appendix. コンパイルはできるが挙動がおかしい場合
環境差によるもの / コード起因のもの
- プログラムの入出力の文字コードがあっていない。
- ソースコードの文字コードがあっていない。
- コンパイルオプションがあっていない。
- 64bit / 32bitを考慮していないコードになっている。
-
Main
に[STAThread]
がついていない。
あたりを疑う。