前提・実現したいこと
クラスの先頭において、constを使用し、exeファイルのファイルパスを指定したいのですが
赤波線でエラーがおきております。
検索しましたが答えにたどり着かなかったので教えていただきたいです。
発生している問題・エラーメッセージ
private const string BackupFile_Path = System.AppDomain.CurrentDomain.BaseDirectory ; →BackupFile_Pathに割り当てられた式は定数でなければなりません。
該当のソースコード
C#
1 飛び出し元の例 2 3bool retVal = FileOutputUtil.orderNoFileCopy(元ファイル, BackUpFile_Path + "backup.csv");
補足情報(FW/ツールのバージョンなど)
Visualstudio2019 C#
> BackupFile_Pathに割り当てられた式は定数でなければなりません。
書いてありますよね。
これをこのまま検索してすぐ答えにたどり着きましたが、何を検索したんでしょうか?
こういうとき、解決できない人はどう考えているか知りたいので検索ワードを教えてください。
「割り当てられた式は定数でなければなりません。」を検索しまして、以下のような式は多く見つけたのですがこの場合、定数テストは式でなく文字なので、式の場合どのようにするのかたどり着いていない状況です。。
public const string con_test = "定数テスト";
どのようにというか、できないと書いてありますよね。
> 式は定数でなければなりません。
できないということなのですね。。ありがとうございます。
これを実現できるような方法はあるのでしょうか。
これに関する公式な情報は次です。
https://docs.microsoft.com/ja-jp/dotnet/csharp/misc/cs0133
このページの「定数」をクリックすると、次のように書いてあります。
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/constants
> 定数とは、コンパイル時に既知であり、プログラムの実行期間を通じて変更されない値です。
System.AppDomain.CurrentDomain.BaseDirectory の戻り値はコンパイル時に未知なので、使えません。
> これを実現できるような方法はあるのでしょうか。
ありません。
const を使わないでください。
readonly は代わりになりませんか?
赤波線消えました!ありがとうございました。
エラー時の調べ方もまだまだなので、勉強していきます。
解決したのであれば、他の人にわかるようまとめたものを自分で回答し、それをベストアンサーに選んでください。
何故 const を使おうと思ったのですか?
宣言といえばconstという認識しかありませんでした、、
みなさま、ありがとうございました。
回答1件
あなたの回答
tips
プレビュー