what is the difference between these two?
Your first code example is a field and your second one is a property.
A field is a class member that its value is assigned on a class instantiating (if it's set on class definition), before the constructor is been called and you don't have any control when setting or getting it:
public static int intId;
A property is a class member, I can describe it as a special "field" which you can control on how the data will be set and get on it,in other words - Encapsulation, it's kind of a function but behaves like a field:
public int intId
    {
        get
        {
            return intId;
        }
        set
        {
            intId = value;
        }
    }
In your example, the int property is using the static int field but you're doing a wrong use of the both:
- Your field should be with a - privatemodifier and not- static, otherwise it's not make sense of using it because it might be change from external sources.
 
- They both have the same name, change it. 
Like that:
private int _intId;
public int IntId
{
    get
    {
        return _intId;
    }
    set
    {
        _intId = value;
    }
}