c# - int.Parse not throwing an exception -


i have custom control contains textbox. custom class has 3 properties, minvalue, maxvalue, , value, defined so:

public int value {     { return int.parse(text.text); }     set     {         text.text = value.tostring();     } }  public int maxvalue { get; set; } public int minvalue { get; set; } 

when textbox inside custom class loses focus, following method run:

void text_lostfocus(object sender, eventargs e) {     value = value > maxvalue ? maxvalue : value;     value = value < minvalue ? minvalue : value; } 

if textbox has string larger 2,147,483,647, text stays same when focus lost, , no exception thrown.

why exception not thrown, , how can make set values higher int32.maxvalue maxvalue, , values lower int32.minvalue minvalue?

first, there different integer data types in c#.

e.g.

int32 range -2,147,483,648 2,147,483,647

int64 range -9,223,372,036,854,775,808 9,223,372,036,854,775,807

it's technical not possible have greater range using int32 uses 32bits of memory. using unsigned version of type shift range positive values, if don't need negative values, take @ uint32.
to actual increase range, option is, using int64 data type.

see also: https://msdn.microsoft.com/en-us/en-en/library/exx3b86w.aspx

(int alias int32, long int64)

second, neither have try-catch block nor using tryparse there should unhandled system.overflowexception. if there's no exception @ all, that's somehow strange. sure, that's not inside try-catch block?

anyway recommend use tryparse instead of parse , handle errors accordingly.


Comments

Popular posts from this blog

c++ - Delete matches in OpenCV (Keypoints and descriptors) -

java - Could not locate OpenAL library -

sorting - opencl Bitonic sort with 64 bits keys -