In a nutshell, no, there is no way to do this.
supercat9 wrote:
It is rather annoying having to cast the parameters to graphics routines, and I'm really not clear why such casts are necessary.
If it's annoying, turn the Strict option off. With Strict on, your basically being forced to tell the compiler that you know the conversion can result in data loss.
supercat9 wrote:
Will conversion from double to single ever throw an exception
No. If, while using Convert.ToSingle, the value of the Double is outside the range of values supporting by Single, the resulting Single will have the value (+/-)Infinity.
supercat9 wrote:
If double->single is considered a narrowing conversion because of a potential loss of precision, why would not integer->single or long->double be considered likewise?
Because the range of values supported by Integer and Long are well within the range of values supported by Single and Double. There is no loss of precision when converting from an Integer to Single or Long to Double.