If these Integer Properties have some consistent regular feature, and you don't want to use the Nullable Int Type, as Mehdi suggested, you could do something like this
public class YourClass
{
public const Int32 INTNOTSET = Int32.MinValue;
public int Int1 { set; get; }
public YourClass()
{
Int1 = INTNOTSET;
}
}
Then you would test if the property is initialized like this:
YourClass yourClass = new YourClass();
if (yourClass.Int1 == YourClass.INTNOTSET)
{
}
else
{
}
Note that defining INTNOTSET as a Constant in 'YourClass results in it being a static Field of the Class which must be accessed via the reference to the Class itself.
Without knowing more about what your App is and what it does, and the shared aspects of your Int variables, and their uses (if any), evaluating the relevance of any technique is crystal-ball gazing :) However, if your Int Properties are there to hold values returned from querying databases, then, you probably do want to use Nullable Int.
Use of Nullable Types does not cause boxing and un-boxing, but does add some overhead, but so would the technique shown here, or any other technique.
Depending on the context, in one scenario using a Dictionary<string,int> might be useful, and so forth.