I am trying to use a dll where the following structure exists:
 public struct MyStruct
 {
     public int Day;
     public int Hour;
     public int Month;
     public int MonthVal;
 }
In my code I am trying to assign values to these variables:
MyStruct MS; OR MyStruct MS = new MyStruct(); and then do
MS.Day = 1;
MS.Hour = 12;
MS.Month = 2;
MS.MonthVal = 22;
Problem is, MS cannot be assigned values, and because the struct has no constructor, I cannot do
 MyStruct ms = new MyStruct(1, 12, 2, 22);
So, how do I get values into the structure?
In my code I am trying to assign values to these variables
MyStruct MS = new MyStruct(); MS.Day = 1; MS.Hour = 12; MS.Month = 2; MS.MonthVal = 22;
This approach works perfectly (demo). However, the two approaches described below are better:
If you do not want to define a constructor, this syntax would save you some typing, and group related items together in a single initializer:
MyStruct MS = new MyStruct {
    Day = 1,
    Hour = 12,
    Month = 2,
    MonthVal = 22
};
If you are OK with defining a constructor, do this instead:
public struct MyStruct {
    public int Day {get;}
    public int Hour {get;}
    public int Month {get;}
    public int MonthVal {get;}
    public MyStruct(int d, int h, int m, int mv) {
        Day = d;
        Hour = h;
        Month = m;
        MonthVal = mv;
    }
}
This approach would give you an immutable struct (which it should be), and a constructor that should be called like this:
MyStruct MS = new MyStruct(1, 12, 2, 22);
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With