正如我的代碼建議,我試圖創建一個委託,它將指向StringBuff方法BuffString,它會創建一個StringBuilder,它將有相當數量的設置等。C#代表和事件邏輯和語法問題
我的問題是,由於某種原因,不管它是什麼,我嘗試我無法將我在Sprite類中所做的StringBuff類的引用傳遞給委託的構造函數而不會收到錯誤。在此基礎上,我覺得創建一個事件可能對幫助啓動代表很有幫助。
主要問題是,我現在剛剛掌握了這兩個概念,以及如何將它們用作其他編程語言允許的函數指針替換。
如果任何人有任何想法,我需要做什麼來做到這一點,我一定會很感激。
下面的代碼:
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 2011-05-25 05:29:32