2012-08-05 56 views
1

我嘗試發送一些對象到一個函數,但似乎C#不喜歡那樣。這是代碼。發送Texture2d對象到函數

string[] bkgrSource = new string[12]; 
Texture2D[] bkgrBANK = new Texture2D[12]; 

其中bkgrSource[0]是文件名的陣列,並且bkgrBANK[0]Texture2D陣列。

此功能不起作用。 bkgrBANK[0]將保持爲空。任何幫助?

commonImageLoader(bkgrSource[0], bkgrBANK[0]); 

private void commonImageLoader(string source, Texture2D destination) { 
    if (!string.IsNullOrEmpty(source)) { 
     fileName = source; 
     using (fileStream = new FileStream(@fileName, FileMode.Open)) { 
     destination = Texture2D.FromStream(GraphicsDevice, fileStream); 
     } 
    } 
} 

回答

1

我不是一個C#大師,但我認爲這一點是要傳遞參數的值(默認方法調用行爲), 所以在你的函數源和目標參數是原件及複印件那些。

我想你可以通過參數by reference來解決這個問題。 大概這應該工作:

commonImageLoader(ref bkgrSource[0], ref bkgrBANK[0]); 

private void commonImageLoader(ref string source, ref Texture2D destination) { 
    if (!string.IsNullOrEmpty(source)) { 
     fileName = source; 
     using (fileStream = new FileStream(@fileName, FileMode.Open)) { 
     destination = Texture2D.FromStream(GraphicsDevice, fileStream); 
     } 
    } 
} 
+0

... tnx! ...現在起作用了。 :),, – 2012-08-05 18:03:35