T
tony
Hello!
I have a question about design.
I have below a method called InitData and a struct called Data.
Metod InitData is used for loading a hashtable with some data that is about
number of decimal and some limits for max and min value.
I use a string [] to place key string that is used as key values. When I
want to fetch a post a use a string in this key string array[].
I use the string key value to get the right post from the object [] array
For example if I want to fetch a post for key string O2 I do the following
MeltPracLimits.Data data = (MeltPracLimits.Data)m_dataHashTable[ "O2" ];
double min = data.MinValue;
double max = data.MaxValue;
int numOfDec = data.NumOfDec;
Now to my question and sometimes a problem is when I spell the key string
incorrect for example if I write
MeltPracLimits.Data data = (MeltPracLimits.Data)m_dataHashTable[ "o2" ];
here I wrote keystring as o2 insted of O2 which cause runtime error.
I just wonder if you have any better idea how I can solve this in a better
way.
public static Hashtable InitData()
{
Hashtable hashTable = new Hashtable();
string[] str = {"DEFAULT", "T<", "T>", "Tim", "Ar",
"O2", "N2","Temp", "MSlg",
"MStl","Yield","H2O"};
object DEFAULT_Range= new Data(3, 0.0, 100.0);
object TempRange = new Data(0, 1350.0, 1899.0);
object TimeRange = new Data(0, 0.0, 1800);
object GasRange = new Data(0, 0.0, 3000.0);
object MSlgRange = new Data(0, 0.0, 99999.0);
object MStlRange = new Data(0, 0.0, 999999.0);
object YieldRange = new Data(1, 0.0, 200.0);
object H2ORange = new Data(0, 0.0, 200.0);
object[] obj = { DEFAULT_Range, // DEFAULT
TempRange, // T<
TempRange, // T>
TimeRange, // Tim
GasRange, // Ar
GasRange, // O2
GasRange, // N2
TempRange, // Temp
MSlgRange, // MSlg
MStlRange, // MStl
YieldRange, // Yield
H2ORange};
for(int i=0; i < str.Length; i++ )
hashTable.Add(str, obj);
return hashTable;
}
public struct Data
{
private int numOfDec;
private double maxValue, minValue;
public Data(int numberOfDec, double min, double max)
{
numOfDec = numberOfDec;
minValue = min;
maxValue = max;
}
public int NumOfDec
{ get { return numOfDec; } }
public double MaxValue
{ get { return maxValue; } }
public double MinValue
{ get { return minValue; } }
}
I have a question about design.
I have below a method called InitData and a struct called Data.
Metod InitData is used for loading a hashtable with some data that is about
number of decimal and some limits for max and min value.
I use a string [] to place key string that is used as key values. When I
want to fetch a post a use a string in this key string array[].
I use the string key value to get the right post from the object [] array
For example if I want to fetch a post for key string O2 I do the following
MeltPracLimits.Data data = (MeltPracLimits.Data)m_dataHashTable[ "O2" ];
double min = data.MinValue;
double max = data.MaxValue;
int numOfDec = data.NumOfDec;
Now to my question and sometimes a problem is when I spell the key string
incorrect for example if I write
MeltPracLimits.Data data = (MeltPracLimits.Data)m_dataHashTable[ "o2" ];
here I wrote keystring as o2 insted of O2 which cause runtime error.
I just wonder if you have any better idea how I can solve this in a better
way.
public static Hashtable InitData()
{
Hashtable hashTable = new Hashtable();
string[] str = {"DEFAULT", "T<", "T>", "Tim", "Ar",
"O2", "N2","Temp", "MSlg",
"MStl","Yield","H2O"};
object DEFAULT_Range= new Data(3, 0.0, 100.0);
object TempRange = new Data(0, 1350.0, 1899.0);
object TimeRange = new Data(0, 0.0, 1800);
object GasRange = new Data(0, 0.0, 3000.0);
object MSlgRange = new Data(0, 0.0, 99999.0);
object MStlRange = new Data(0, 0.0, 999999.0);
object YieldRange = new Data(1, 0.0, 200.0);
object H2ORange = new Data(0, 0.0, 200.0);
object[] obj = { DEFAULT_Range, // DEFAULT
TempRange, // T<
TempRange, // T>
TimeRange, // Tim
GasRange, // Ar
GasRange, // O2
GasRange, // N2
TempRange, // Temp
MSlgRange, // MSlg
MStlRange, // MStl
YieldRange, // Yield
H2ORange};
for(int i=0; i < str.Length; i++ )
hashTable.Add(str, obj);
return hashTable;
}
public struct Data
{
private int numOfDec;
private double maxValue, minValue;
public Data(int numberOfDec, double min, double max)
{
numOfDec = numberOfDec;
minValue = min;
maxValue = max;
}
public int NumOfDec
{ get { return numOfDec; } }
public double MaxValue
{ get { return maxValue; } }
public double MinValue
{ get { return minValue; } }
}