Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

VB.Net -> C# translation -- Array declaration

Posted on 2009-05-06
10
Medium Priority
?
883 Views
Last Modified: 2013-12-17
This is stupid ... but ... how does the following line of VB.Net translate into C#?

Private SeparationColors(MAX_COLORS) As System.Drawing.Color

(MAX_COLORS is Private Const MAX_COLORS As Byte = 25 which I've translated just fine.)

Thanks!
   
//I tried:
       private System.Drawing.Color[MAX_COLORS] SeparationColors;
//but got
//Array size cannot be specified in a variable declaration (try initializing with a 'new' expression)	
 
 
 
        private System.Drawing.Color[] SeparationColors;
        SeparationColors = new System.Drawing.Color[MAX_COLORS];
//but got 2 additional errors.
 
 
        private fixed System.Drawing.Color[] SeparationColors[MAX_COLORS];
//but got
//Fixed size buffer type must be one of the following: bool, byte, short, int, long, char, sbyte, ushort, uint, ulong, float or double

Open in new window

0
Comment
Question by:Daniel Wilson
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
10 Comments
 
LVL 6

Accepted Solution

by:
Cebik earned 1000 total points
ID: 24315354

private System.Drawing.Color[] SeparationColors = new System.Drawing.Color[MAX_COLORS];

Open in new window

0
 
LVL 6

Expert Comment

by:Cebik
ID: 24315384

class a
{
    private System.Drawing.Color[] SeparationColors;
 
    public a()
    {
        SeparationColors = new System.Drawing.Color[MAX_COLORS];
    }
}

Open in new window

0
 
LVL 32

Author Closing Comment

by:Daniel Wilson
ID: 31578478
I knew I was missing something simple!

Thanks!
0
Automating Terraform w Jenkins & AWS CodeCommit

How to configure Jenkins and CodeCommit to allow users to easily create and destroy infrastructure using Terraform code.

 
LVL 64

Expert Comment

by:Fernando Soto
ID: 24315404
Try it like this:

private System.Drawing.Color[] SeparationColors = new System.Drawing.Color[MAX_COLORS];
0
 
LVL 16

Expert Comment

by:CuteBug
ID: 24315405
This should work

Make sure that you have defined MAX_COLOR as int.

int MAX_COLOR = 256;
System.Drawing.Color[] arrColor = new System.Drawing.Color[MAX_COLOR];

Open in new window

0
 
LVL 6

Expert Comment

by:Cebik
ID: 24315422
Hi ;)

class a
{
    private const byte MAX_COLORS = 25;
    private byte[] SeparationColors = new byte[MAX_COLORS];
 
    public a()
    {
    }
}

Open in new window

0
 
LVL 9

Expert Comment

by:tculler
ID: 24315428
The above obviously works, but there's really no explanation there.

In C#, the array declaration is considered part of the object's "type". For example, unlike VB and C++, we must say

int[] someArray

instead of

int someArray[]

Also, the arrays are, by default, initialized to "null" ("Nothing" in VB). So, the declaration

System.Drawing.Color[] myColors;

is the same as saying

System.Drawing.Color[] myColors = null; // Nothing, no colors in the array

However, if you do initialize your array, you MUST give the size (this is the downside of arrays all around). For example, the following is NOT valid:

System.Drawing.Color[] myColors = new System.Drawing.Color[];

The second set of brackets must contain a positive integer value, no matter what.

The "fixed" keyword in C# has an entirely different meaning than in other languages--it has to do with pointers, and basically "pinning" them so the GC doesn't run off with the object.

Hope I helped,
Nate
0
 
LVL 6

Expert Comment

by:Cebik
ID: 24315435
it's working checked


class a
{
    private const byte MAX_COLORS = 25;
    private System.Drawing.Color[] SeparationColors = new System.Drawing.Color[MAX_COLORS];
 
    public a()
    {
    }
}

Open in new window

0
 
LVL 4

Expert Comment

by:cauos
ID: 24315447
private System.Drawing.Color[] SeparationColors = new System.Drawing.Color[MAX_COLORS];
0
 
LVL 6

Expert Comment

by:Cebik
ID: 24315818
@tculler:

Thanks ;)
I don't speek english very well, thats why there was no explanation
0

Featured Post

Give Your Engineering Team a Productivity Boost

Learn why container technology is so powerful and how it can provide your team with productivity gains and other benefits.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…

670 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question