有効期限付きのコードを書くことはできますか? 質問する

有効期限付きのコードを書くことはできますか? 質問する

ちょうど、私が使いたいと思っていたものについて、こんなアイデアが浮かびました。

たとえば、バグを修正する必要があり、当面の問題を解決する醜いコード行を記述することにしたとします。ただし、これは適切なリファクタリングを実行する時間をすぐに見つけると自分自身に約束しているからです。

何らかの方法でそのコード行を「期限切れ」としてマークし、日付を追加できるようにしたいと考えています。そうすれば、その日付以降にコードがコンパイルされた場合、適切なメッセージとともにコンパイル エラー/警告が表示されます。

何か提案はありますか? おそらく、複雑な #IF や Visual Studio のオプションを使用して実行できるはずです。

私は主に C# 用に VS 2005 を使用しています。

ベストアンサー1

コードにSystem.ObsoleteAttribute属性を付けることにより、コンパイラの警告が表示され、コードを修正するように促されます。

[Obsolete("You've an ugly hack here")]
public void MyUglyHack()
{
...
}

あるいは…

独自の属性を記述し、コンストラクターで有効期限を渡し、コンストラクター内で例外をスローしますDateTime.Now >= expirationDate

コードを修正するまでコンパイルは失敗します(または有効期限を延長するか、はるかに可能性が高い属性を削除するだけです。

おすすめ記事