-
April 19th, 2010, 08:36 AM
#16
Re: Why does not 'int' work? (Type casting)
Originally Posted by foamy
That's probably because SplashDisabled is a byte, not an int.
Nope, already established that SplashDisabled is a tinyint:
http://img517.imageshack.us/img517/724/31661690.png
Edit:
Looks like my edit button has been enabled! Yay!
-
April 19th, 2010, 08:43 AM
#17
Re: Why does not 'int' work? (Type casting)
Originally Posted by MusicGuy
TBH, I didn't look at those images. AFAIK tinyint should be used as a byte in C#.
It's not a bug, it's a feature!
-
April 19th, 2010, 08:51 AM
#18
Re: Why does not 'int' work? (Type casting)
Well, I'm new to C#, I'm more used to PHP/MySql and usually when using php/mysql if i have a "on/off" value and am using something small as a 0/1 value i use a tiny int.
It usually gives me more flexibility than declaring it as a boolean as i can extend it later to take more than just 2 values but a LOT less than an int.
Are you suggesting I dont use tinyint anymore in C#? I'm not being sarcastic or anything, like i said i am new here (just started C# a few days back) and would genuinely like to know the answer from you guys who use this on a daily basis.
-
April 19th, 2010, 02:16 PM
#19
Re: Why does not 'int' work? (Type casting)
Originally Posted by MusicGuy
Well, I'm new to C#, I'm more used to PHP/MySql and usually when using php/mysql if i have a "on/off" value and am using something small as a 0/1 value i use a tiny int.
It usually gives me more flexibility than declaring it as a boolean as i can extend it later to take more than just 2 values but a LOT less than an int.
Are you suggesting I dont use tinyint anymore in C#? I'm not being sarcastic or anything, like i said i am new here (just started C# a few days back) and would genuinely like to know the answer from you guys who use this on a daily basis.
For something named "SplashDisabled", do you really think you will need "more flexibility" in the future? Sounds like a true or false value to me, anything more would just be confusing. Also, if you need more values you should use an enum, not a byte.
And yes, use an int. You are not saving anything in a practical sense by using a byte.
If you liked my post go ahead and give me an upvote so that my epee.... ahem, reputation will grow.
Yes; I have a blog too - http://the-angry-gorilla.com/
-
April 19th, 2010, 02:35 PM
#20
Re: Why does not 'int' work? (Type casting)
Originally Posted by BigEd781
For something named "SplashDisabled", do you really think you will need "more flexibility" in the future? Sounds like a true or false value to me, anything more would just be confusing. Also, if you need more values you should use an enum, not a byte.
And yes, use an int. You are not saving anything in a practical sense by using a byte.
Hey,
Thanks for replying!
I agree, in this case "more flexibility" will probably never be needed, but its a habit I built up after working for some morons who kept changing their minds about what the data should do, and what values the DB's fields should hold.
As an example I can actually name you times I actually had to change the field names to suit the designers! (We were using SMARTY so we could all play along nicely.. but still it wouldnt do)
If I was still working for that company, SplashDisabled could possibly have been changed to SplashStatus (0-off, 1-on,2-default,3-on (but run google ads), 4-on but run house ads... etc)
Thats just it, i have never used a byte anywhere, only int and tinyint, but it still wont let me get the present value from the db and put it into an int... it insists on byte for some reason that is beyond me.. so i asked here. Looks like a bug on my machine for some reason as others here cant reproduce the same result even after looking at my code.
-
April 20th, 2010, 01:28 AM
#21
Re: Why does not 'int' work? (Type casting)
Since you're new to C# I'll explain once more. TinyInt is a byte in C#. A byte is not the same as an int. Therefore this will not compile:
Code:
namespace intbyte
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
int for_chkbox = 0;
byte SplashDisabled = 1;
SplashDisabled = for_chkbox;
}
}
}
However, this will:
Code:
namespace intbyte
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
int for_chkbox = 0;
byte SplashDisabled = 1;
SplashDisabled = (byte)for_chkbox;
}
}
}
As the error message is telling you, you need to cast the int as a byte.
It's not a bug, it's a feature!
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|