Re: How can I pass a multidimensional array as a ref parameter in func
- From: Jon Skeet [C# MVP] <skeet@xxxxxxxxx>
- Date: Fri, 22 Jul 2005 23:07:18 +0100
vmsgman <vmsgman@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> Here is a code sample ...
>
> int blah = ReadFile( defArray[,], defFileName, w, h);
>
> // Read File Contents into memory array and return for processing
> public int ReadFile( ref ushort[,] nArray, string sFname, int w, int h)
> {
> FileStream fs = new FileStream(sFname, FileMode.Open, FileAccess.Read);
> BinaryReader br = new BinaryReader(fs);
> // Read data
> for (int y=0; y<h; y++)
> {
> for (int x=0; x<w; x++)
> {
> nArray[x,y] = br.ReadUInt16();
> }
> }
> br.Close();
> fs.Close();
> return 0;
> }
>
> Can anyone help get this to work and compile ???
You pass arrays by reference in exactly the same way as you pass
anything else by reference:
int blah = ReadFile (ref defArray, defFileName, w, h);
However, it seems to me that it would be more appropriate as a return
value in the above - it's the result of reading the file, and currently
you're just returning 0. If that's meant to be a status code, you
should consider using exceptions for indicating errors.
You should also use "using" blocks (or their equivalent, try/finally
blocks) to make sure that files get closed whether or not an exception
is thrown.
--
Jon Skeet - <skeet@xxxxxxxxx>
http://www.pobox.com/~skeet
If replying to the group, please do not mail me too
.
- Follow-Ups:
- References:
- Prev by Date: RE: Generics - A question on generics - delegates - runtime binding.
- Next by Date: Untested. This should work
- Previous by thread: How can I pass a multidimensional array as a ref parameter in func
- Next by thread: Re: How can I pass a multidimensional array as a ref parameter in func
- Index(es):
Relevant Pages
|