TaskBar
名前空間内で定義されたメソッドを使用していますMicrosoft.WindowsAPICodePack.Taskbar
。SetProgressState
具体的には、この質問に焦点を当てます。
の定義を尋ねたときに得られるメタ定義は次のSetProgressState
とおりです。
namespace Microsoft.WindowsAPICodePack.Taskbar
{
public class TaskbarManager
{
public void SetProgressState(TaskbarProgressBarState state);
public void SetProgressState(TaskbarProgressBarState state, IntPtr windowHandle);
public void SetProgressState(TaskbarProgressBarState state, System.Windows.Window window);
}
}
明らかに、1 つのメソッドのオーバーロードを強調するためだけに、そのクラスの定義のほとんどを省略しました。
この時点まで、単一パラメーターのオーバーロードを使用してきましたが、問題はありませんでした。ただし、今日、2 番目のパラメーターとして an を受け入れる 2 パラメーターのオーバーロードを使用しようとしましたIntPtr
。
私がそれをしたとき、ビルド中にこのエラーが発生し始めました:
タイプ 'System.Windows.Window' は、参照されていないアセンブリで定義されています。アセンブリ 'PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' への参照を追加する必要があります
だから私の質問は、単一パラメーターのオーバーロードを使用してもエラーが発生しなかったのはなぜですか?
編集(追加のサブ質問用):
次のことも試しましたが、違いはありませんでした。
SetProgressState(myState, (IntPtr) myWindowHandle);
明示的にキャストすることで、適切なオーバーロードを実現する際のコンパイラの混乱を回避できると考えましたが、そうではありませんでした。