C#: dimensional constant

Hi,
I am looking for a way of storing information in a public constant. The information consist of three values, let say height, width and depth. I though about a delimited string but I want a more maintainable solution. Can some one help?
LVL 4
karakavAsked:
Who is Participating?
 
crazymanConnect With a Mentor Commented:

public struct MyStruct
        {
            private int depth;
            public int Depth
            {
                get { return depth; }
            }
            public MyStruct(int x)
            {
                this.depth = x;
            }
 
        }
 
        public static readonly MyStruct MyConstantStruct = new MyStruct(100);

Open in new window

0
 
divyeshhdoshiCommented:
use collection or array to store multiple values,
u can also use List, Dictionary.
0
 
TechTiger007Commented:
Why dont you create a structure or class to store the data

  struct Position
    {
        int Height;
        int Width;
        int Depth;
    }

or

 class Position
    {
        public int Height{ get; set; }
        public int Width { get; set; }
        public int Depth { get; set; }
    }
0
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

 
openshacConnect With a Mentor Commented:
do something like the .Net implementation of Size...
[Serializable, StructLayout(LayoutKind.Sequential), TypeConverter(typeof(SizeConverter)), ComVisible(true)]
public struct Size
{
    public static readonly Size Empty;
    private int width;
    private int height;
    public Size(Point pt)
    {
        this.width = pt.X;
        this.height = pt.Y;
    }
 
    public Size(int width, int height)
    {
        this.width = width;
        this.height = height;
    }
 
 

Open in new window

0
 
openshacCommented:
you probably don't need the first line
0
 
karakavAuthor Commented:
But I need a CONSTANT. Classes, structs and Arrays are discarded in this case.
0
 
crazymanCommented:
You cant have a struct as a const, one way would be..


public struct MyStruct
        {
            public readonly int depth;
            public MyStruct(int x)
            {
                this.depth = x;
            }

        }

        public static readonly MyStruct MyConstantStruct = new MyStruct(100);
0
 
karakavAuthor Commented:
Anyway, I don't want to use Structures.
0
 
openshacCommented:
you said you didn't want to use "a delimited string" and wanted a "more maintainable solution".

I suggest you use a struct and declare a constant of type say MySize
0
 
crazymanCommented:
Well if you dont want a struct or a string why not use

public const int Height = 100;
public const int Width = 100;
public const int Depth = 100;
0
 
TechTiger007Connect With a Mentor Commented:
You can use a class with GET ONLY properties, then it would behave as constant data which could be initialized only during instantiation


class Position
   {
        private int m_height;
        private int m_width;
        private int m_depth;

        public Position(int height, int width, int depth)
        {
            m_height = height;
            m_depth = depth;
            m_width = width;
        }
       public int Height
       {
           get{
               return m_height;
        }
       }
       public int Width
       {
           get
           {
               return m_width;
           }
       }
       public int Depth
       {
           get
           {
               return m_depth;
           }
       }
   }

0
 
karakavAuthor Commented:
I guess I don't have other choice than Structures after all. Thanks any way.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.