Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. So how well do you think you know C#?

So how well do you think you know C#?

Scheduled Pinned Locked Moved The Lounge
csharpphpvisual-studiocomquestion
37 Posts 20 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L leppie

    Without compiling the following code, what will be the result, if run?

    class Program
    {
    static void Main(string[] args)
    {
    object r = Foo(true);
    Console.WriteLine(r.GetType());
    Console.ReadLine();
    }

    static object Foo(bool e)
    {
    return e ? 0 : 0.0;
    }
    }

    Now compile and run the code? Are you surprised? If so, try figure it out, if not, then kudos to you :)

    xacc.ide - now with TabsToSpaces support
    IronScheme - 1.0 alpha 4a out now (29 May 2008)

    B Offline
    B Offline
    blackjack2150
    wrote on last edited by
    #3

    It's the same as doing

    object x = 2 * 1.0;
    Console.WriteLine(x.GetType());

    which is more obvious.

    L 1 Reply Last reply
    0
    • J Jorgen Sigvardsson

      Double I would imagine due to this: return e ? 0 : 0.0;. The thing with this if-expression, is that the true and false types must be of same or assignable types. In this case an int can be cast into a double, but not vice versa. Because of this, the compiler will promote the 0 to a 0.0, hence double.

      L Offline
      L Offline
      leppie
      wrote on last edited by
      #4

      You people are too smart so early in the morning! ;P

      xacc.ide - now with TabsToSpaces support
      IronScheme - 1.0 alpha 4a out now (29 May 2008)

      J 1 Reply Last reply
      0
      • B blackjack2150

        It's the same as doing

        object x = 2 * 1.0;
        Console.WriteLine(x.GetType());

        which is more obvious.

        L Offline
        L Offline
        leppie
        wrote on last edited by
        #5

        blackjack2150 wrote:

        It's the same as doing

        Not exactly. In you case, the result becomes a double. In my example, the 0 is converted to a double at compile time.

        xacc.ide - now with TabsToSpaces support
        IronScheme - 1.0 alpha 4a out now (29 May 2008)

        1 Reply Last reply
        0
        • L leppie

          You people are too smart so early in the morning! ;P

          xacc.ide - now with TabsToSpaces support
          IronScheme - 1.0 alpha 4a out now (29 May 2008)

          J Offline
          J Offline
          Jorgen Sigvardsson
          wrote on last edited by
          #6

          Smart? Nah, I give experience credit for this. Also, if you think about it, it has to be this way. Numbers aren't that different from objects in OOP. I think this code makes it more apparent: (boolval ? new Car() : new AirPlane()).Fly();Since C# is statically typed, method selection can't be left to runtime binding. :)

          L A 2 Replies Last reply
          0
          • L leppie

            Without compiling the following code, what will be the result, if run?

            class Program
            {
            static void Main(string[] args)
            {
            object r = Foo(true);
            Console.WriteLine(r.GetType());
            Console.ReadLine();
            }

            static object Foo(bool e)
            {
            return e ? 0 : 0.0;
            }
            }

            Now compile and run the code? Are you surprised? If so, try figure it out, if not, then kudos to you :)

            xacc.ide - now with TabsToSpaces support
            IronScheme - 1.0 alpha 4a out now (29 May 2008)

            M Offline
            M Offline
            Mustafa Ismail Mustafa
            wrote on last edited by
            #7

            double, and I'd be surprised if it were anything else...

            Don't forget to vote if the response was helpful


            Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation

            S G 2 Replies Last reply
            0
            • J Jorgen Sigvardsson

              Smart? Nah, I give experience credit for this. Also, if you think about it, it has to be this way. Numbers aren't that different from objects in OOP. I think this code makes it more apparent: (boolval ? new Car() : new AirPlane()).Fly();Since C# is statically typed, method selection can't be left to runtime binding. :)

              L Offline
              L Offline
              leppie
              wrote on last edited by
              #8

              It could have bound to object :|

              xacc.ide - now with TabsToSpaces support
              IronScheme - 1.0 alpha 4a out now (29 May 2008)

              1 Reply Last reply
              0
              • M Mustafa Ismail Mustafa

                double, and I'd be surprised if it were anything else...

                Don't forget to vote if the response was helpful


                Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation

                S Offline
                S Offline
                Simone Busoli
                wrote on last edited by
                #9

                Extremely useful

                Simone Busoli

                M 1 Reply Last reply
                0
                • S Simone Busoli

                  Extremely useful

                  Simone Busoli

                  M Offline
                  M Offline
                  Mustafa Ismail Mustafa
                  wrote on last edited by
                  #10

                  in what sense? :confused:

                  Don't forget to vote if the response was helpful


                  Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation

                  J 1 Reply Last reply
                  0
                  • M Mustafa Ismail Mustafa

                    in what sense? :confused:

                    Don't forget to vote if the response was helpful


                    Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation

                    J Offline
                    J Offline
                    Jorgen Sigvardsson
                    wrote on last edited by
                    #11

                    Your sig... ;)

                    M 1 Reply Last reply
                    0
                    • J Jorgen Sigvardsson

                      Your sig... ;)

                      M Offline
                      M Offline
                      Mustafa Ismail Mustafa
                      wrote on last edited by
                      #12

                      :doh: :laugh:

                      Don't forget to vote if the response was helpful


                      Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation

                      1 Reply Last reply
                      0
                      • M Mustafa Ismail Mustafa

                        double, and I'd be surprised if it were anything else...

                        Don't forget to vote if the response was helpful


                        Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation

                        G Offline
                        G Offline
                        Gary Wheeler
                        wrote on last edited by
                        #13

                        Mustafa Ismail Mustafa wrote:

                        double, and I'd be surprised if it were anything else...

                        double, and I'd be surprised pissed off if it were anything else... (I'm in the process of learning C#)

                        Software Zen: delete this;

                        M 1 Reply Last reply
                        0
                        • L leppie

                          Without compiling the following code, what will be the result, if run?

                          class Program
                          {
                          static void Main(string[] args)
                          {
                          object r = Foo(true);
                          Console.WriteLine(r.GetType());
                          Console.ReadLine();
                          }

                          static object Foo(bool e)
                          {
                          return e ? 0 : 0.0;
                          }
                          }

                          Now compile and run the code? Are you surprised? If so, try figure it out, if not, then kudos to you :)

                          xacc.ide - now with TabsToSpaces support
                          IronScheme - 1.0 alpha 4a out now (29 May 2008)

                          R Offline
                          R Offline
                          Rajesh R Subramanian
                          wrote on last edited by
                          #14

                          How do you get formatted and colorised code like that? Is there a tool or something? Do you mind sharing it with me? :)

                          Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]

                          L 1 Reply Last reply
                          0
                          • R Rajesh R Subramanian

                            How do you get formatted and colorised code like that? Is there a tool or something? Do you mind sharing it with me? :)

                            Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]

                            L Offline
                            L Offline
                            leppie
                            wrote on last edited by
                            #15

                            Rajesh R Subramanian wrote:

                            How do you get formatted and colorised code like that? Is there a tool or something? Do you mind sharing it with me?

                            xacc.ide*, select text, right click, copy special, copy to HTML :) * see link below

                            xacc.ide - now with TabsToSpaces support
                            IronScheme - 1.0 alpha 4a out now (29 May 2008)

                            R 1 Reply Last reply
                            0
                            • L leppie

                              Rajesh R Subramanian wrote:

                              How do you get formatted and colorised code like that? Is there a tool or something? Do you mind sharing it with me?

                              xacc.ide*, select text, right click, copy special, copy to HTML :) * see link below

                              xacc.ide - now with TabsToSpaces support
                              IronScheme - 1.0 alpha 4a out now (29 May 2008)

                              R Offline
                              R Offline
                              Rajesh R Subramanian
                              wrote on last edited by
                              #16

                              It works with C++? Will I be able to specify a background color of my option? I know that I can modify the HTML, but I'm just asking. I'm downloading it at the moment. Thanks.

                              Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]

                              L 1 Reply Last reply
                              0
                              • R Rajesh R Subramanian

                                It works with C++? Will I be able to specify a background color of my option? I know that I can modify the HTML, but I'm just asking. I'm downloading it at the moment. Thanks.

                                Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]

                                L Offline
                                L Offline
                                leppie
                                wrote on last edited by
                                #17

                                Rajesh R Subramanian wrote:

                                It works with C++?

                                Not as nice as C#, but ok :)

                                Rajesh R Subramanian wrote:

                                Will I be able to specify a background color of my option? I know that I can modify the HTML, but I'm just asking.

                                Nope, not IIRC, it just defaults to white, I cant remember if it picks up the color from the editor, or if that color can even be changed! Been very long since I wrote that :)

                                xacc.ide - now with TabsToSpaces support
                                IronScheme - 1.0 alpha 4a out now (29 May 2008)

                                R 1 Reply Last reply
                                0
                                • L leppie

                                  Rajesh R Subramanian wrote:

                                  It works with C++?

                                  Not as nice as C#, but ok :)

                                  Rajesh R Subramanian wrote:

                                  Will I be able to specify a background color of my option? I know that I can modify the HTML, but I'm just asking.

                                  Nope, not IIRC, it just defaults to white, I cant remember if it picks up the color from the editor, or if that color can even be changed! Been very long since I wrote that :)

                                  xacc.ide - now with TabsToSpaces support
                                  IronScheme - 1.0 alpha 4a out now (29 May 2008)

                                  R Offline
                                  R Offline
                                  Rajesh R Subramanian
                                  wrote on last edited by
                                  #18

                                  I might give it a shot to add those features of my choice if time permits. I hardly work with C#. Thanks for the tool anyways.

                                  Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]

                                  1 Reply Last reply
                                  0
                                  • L leppie

                                    Without compiling the following code, what will be the result, if run?

                                    class Program
                                    {
                                    static void Main(string[] args)
                                    {
                                    object r = Foo(true);
                                    Console.WriteLine(r.GetType());
                                    Console.ReadLine();
                                    }

                                    static object Foo(bool e)
                                    {
                                    return e ? 0 : 0.0;
                                    }
                                    }

                                    Now compile and run the code? Are you surprised? If so, try figure it out, if not, then kudos to you :)

                                    xacc.ide - now with TabsToSpaces support
                                    IronScheme - 1.0 alpha 4a out now (29 May 2008)

                                    S Offline
                                    S Offline
                                    SomeGuyThatIsMe
                                    wrote on last edited by
                                    #19

                                    i say double, but one of our new devs, thought it was a bool, then an object, then gave up and had me explain it. person has the same title as me too, funny how i never cared about that stuff until i got one. hopefully the other new guy will do better.

                                    Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.

                                    1 Reply Last reply
                                    0
                                    • G Gary Wheeler

                                      Mustafa Ismail Mustafa wrote:

                                      double, and I'd be surprised if it were anything else...

                                      double, and I'd be surprised pissed off if it were anything else... (I'm in the process of learning C#)

                                      Software Zen: delete this;

                                      M Offline
                                      M Offline
                                      Mustafa Ismail Mustafa
                                      wrote on last edited by
                                      #20

                                      Gary Wheeler wrote:

                                      double, and I'd be surprised pissed off if it were anything else...

                                      I stand corrected :)

                                      Gary Wheeler wrote:

                                      (I'm in the process of learning C#)

                                      From what I remember, you're a C++er. Don't worry, you'll pick it up in no time flat, but you'll hate some stuff. const comes as a[n unpleasant] surprise and so do reflection issues. All in all, its a nice language :)

                                      Don't forget to vote if the response was helpful


                                      Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation

                                      G 1 Reply Last reply
                                      0
                                      • L leppie

                                        Without compiling the following code, what will be the result, if run?

                                        class Program
                                        {
                                        static void Main(string[] args)
                                        {
                                        object r = Foo(true);
                                        Console.WriteLine(r.GetType());
                                        Console.ReadLine();
                                        }

                                        static object Foo(bool e)
                                        {
                                        return e ? 0 : 0.0;
                                        }
                                        }

                                        Now compile and run the code? Are you surprised? If so, try figure it out, if not, then kudos to you :)

                                        xacc.ide - now with TabsToSpaces support
                                        IronScheme - 1.0 alpha 4a out now (29 May 2008)

                                        P Offline
                                        P Offline
                                        piyush7419820
                                        wrote on last edited by
                                        #21

                                        it will throw null exception.

                                        1 Reply Last reply
                                        0
                                        • M Mustafa Ismail Mustafa

                                          Gary Wheeler wrote:

                                          double, and I'd be surprised pissed off if it were anything else...

                                          I stand corrected :)

                                          Gary Wheeler wrote:

                                          (I'm in the process of learning C#)

                                          From what I remember, you're a C++er. Don't worry, you'll pick it up in no time flat, but you'll hate some stuff. const comes as a[n unpleasant] surprise and so do reflection issues. All in all, its a nice language :)

                                          Don't forget to vote if the response was helpful


                                          Sig history "dad" Ishmail-Samuel Mustafa "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation

                                          G Offline
                                          G Offline
                                          Gary Wheeler
                                          wrote on last edited by
                                          #22

                                          Mustafa Ismail Mustafa wrote:

                                          From what I remember, you're a C++er.

                                          Yes indeed. My portion of our next product (the UI) will be written in C#, since we have a requirement to use some WPF controls supplied by another group. Now, I've got a couple thousand pages of books to read to get started :).

                                          Software Zen: delete this;

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups