CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Page 2 of 2 FirstFirst 12
Results 16 to 21 of 21
  1. #16
    Join Date
    Apr 2010
    Posts
    8

    Re: Why does not 'int' work? (Type casting)

    Quote Originally Posted by foamy View Post
    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!

  2. #17
    Join Date
    May 2007
    Location
    Denmark
    Posts
    623

    Re: Why does not 'int' work? (Type casting)

    Quote Originally Posted by MusicGuy View Post
    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!
    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!

  3. #18
    Join Date
    Apr 2010
    Posts
    8

    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.

  4. #19
    Join Date
    Jun 2008
    Posts
    2,477

    Re: Why does not 'int' work? (Type casting)

    Quote Originally Posted by MusicGuy View Post
    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/

  5. #20
    Join Date
    Apr 2010
    Posts
    8

    Re: Why does not 'int' work? (Type casting)

    Quote Originally Posted by BigEd781 View Post
    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.

  6. #21
    Join Date
    May 2007
    Location
    Denmark
    Posts
    623

    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!

Page 2 of 2 FirstFirst 12

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
  •  





Click Here to Expand Forum to Full Width

Featured