私のコードで示唆しているように、かなりの量の設定が必要なStringBuilderを作成するStringBuffメソッドBuffStringを指すデリゲートを作成しようとしています。C#デリゲートとイベントのロジックと構文の問題
私の問題は、何が原因であろうと、エラーを受け取ることなく、Spriteクラス内で作成したStringBuffクラスへの参照をデリゲートのコンストラクタに渡すことができないことです。その上に、イベントを作成すると、デリゲートを開始するのに役立つかもしれないと感じています。
主な問題は、これらの2つの概念だけでなく、他のプログラミング言語で許可されている関数ポインタの置き換えとしてそれらを使用することです。
私はこの仕事をするために何が必要なのか誰かが考えているなら、私は間違いなくそれを感謝するでしょう。ここで
はコードです:
public class StringBuff
{
private static StringBuilder stringBuffer = new StringBuilder();
public static StringBuilder BuffString(string _string) //--may possibly have to use IntPtr to reference stringBuffer here.
//This is the equivalent to the "strbuff_new" C++ method variant, designed to update the stringBuffer.
{
int iCounter = 0;
stringBuffer.Append(_string + " ");
iCounter += _string.Length + 1;
if (iCounter == stringBuffer.Capacity - 1)
{
stringBuffer.Capacity += stringBuffer.Capacity;
}
return stringBuffer;
}
}
public delegate void UpdateStringBuffer(StringBuff sender);
public class Sprite : SpriteInterface.ISprite
{
private StringBuff stringBuff = new StringBuff();
public event UpdateStringBuffer stringBuffEvent
{
add
{
Console.WriteLine("Adding");
stringBuffEvent += value;
}
remove
{
Console.WriteLine("Removing...");
stringBuffEvent -= value;
}
}
static void Main()
{
new Sprite().stringBuffEvent += new UpdateStringBuffer(stringBuff);
}
}
同様にあなたのエラーを投稿してください。 – alexD