Blog - Title

  • The C# Team

    Why aren't reference types polymorphic?

    • 35 Comments
    Q: Why aren't reference types polymorphic? A: Consider the following code: using System; class Dog { public string Name; } class Test { public static void Swap(ref object a, ref object b) { object temp; temp = a; a = b; b = temp; } public static...
  • The C# Team

    When should I use == and when should I use Equals?

    • 25 Comments
    The Equals method is just a virtual one defined in System.Object , and overridden by whichever classes choose to do so. The == operator is an operator which can be overloaded by classes, but which usually has identity behaviour. For reference...
  • The C# Team

    Should I assign null to my local variables?

    • 14 Comments
    Q: Should I assign null to my local variables after I use them? For example: string s = ...; Console.WriteLine(s); s = null; A: There is rarely a need to do this for local variables in C# The lifetime of variables is tracked by the JIT - it analyzes...
  • The C# Team

    Why do I need a null test before I invoke a delegate?

    • 12 Comments
    Q: Why do I need a null test before I invoke a delegate? A: If you have an event in a class, you need to add a null test before you call the delegate. Typically, you would write: if (Click != null ) Click(arg1, arg2); There is actually a possible...
  • The C# Team

    Why doesn't C# warn about unused methods?

    • 7 Comments
    Q: Why doesn't C# warn on unused methods? A: This is something that the C# compiler could do, subject to a few caveats: Virtual functions would have to be excluded Interface implementations wouldn have to be excluded You would get false...
  • The C# Team

    How can I update my user interface from a thread that did not create it?

    • 34 Comments
    When performing any action on a control which requires the updating of a user interface element (e.g. setting the Text property on almost any class derived from Control, updating the data source behind a DataGrid), these operations MUST take place on...
  • The C# Team

    Why can't I have static and instance methods with the same name?

    • 12 Comments
    Q: Why can't I have static and instance methods with the same name? class Test { static void Process(); void Process(); void AmbiguousCaller() { Process(); } } there's no ambiguity, since the first can only be called through the type...
  • The C# Team

    Where can I find sample C# code for simple threading?

    • 11 Comments
    Refer to the System.Threading namespace on MSDN for full details. Meanwhile here is a quick taste. using System; using System.Threading; class ThreadTest { public void Runme() { Console.WriteLine( "Runme Called" ); Thread.Sleep(10000...
  • The C# Team

    How do C# generics compare to C++ templates?

    • 28 Comments
    Q: How do C# generics compare to C++ templates? A: This is really a fairly complex topic. Anders has touched on it in an interview . I should state at the outset that the goals of generics are not the same as the goals of templates. There are...
  • The C# Team

    Where can I get a full comparison between C# and VB.NET?

    • 6 Comments
    Microsoft provides a very full language equivalents page which compares not only C# and VB.NET, but also other languages targeted at the .NET framework. It looks at the equivalent concepts, keywords, types, operators etc. A very valuable resource...
  • The C# Team

    Is there an equivalent of MyClass?

    • 8 Comments
    No, C# doesn't have an equivalent of VB.NET's MyClass keyword. If you want to guarantee not to call an overridden version of a method, you need to make it non-virtual in the first place. [Author: Jon Skeet]
  • The C# Team

    What do I use instead of addressof?

    • 1 Comments
    To create delegate instances in C#, you just specify the delegate type, the method, and (if you want to create a delegate targetting a different instance or type from the current one) the target. For instance, each of these creates a ThreadStart delegate...
  • The C# Team

    How do I get the rightmost part of a string, as with the VB Right function?

    • 10 Comments
    Use String.Substring . Assuming that x is a string of length at least n , to get the last n characters, you would use x.Substring(x.Length-n) . Note that the above assumes that the string is at least n characters long. For a more robust version...
  • The C# Team

    What are the equivalents of Me and MyBase?

    • 1 Comments
    Me in C# is this , and MyBase in C# is base . To access normal members, just use this.memberName or base.memberName . For information about chaining constructors together, see my article on constructors . [Author: Jon Skeet]
  • The C# Team

    What's the equivalent of Nothing?

    • 4 Comments
    For reference types, the equivalent of VB's Nothing is C#'s null . For value types, it's the default value - 0 , false , etc. [Author: Jon Skeet]
  • The C# Team

    How do I tell C# what kind of literal number I want?

    • 5 Comments
    If you need to tell C# that you want it to treat a literal as a particular type of number, you may do so by adding a number type suffix at the end of the literal you provide. For example: 1u; // An unsigned int 1l; // A signed long 1ul;...
  • The C# Team

    How do I use an alias for a namespace or class?

    • 6 Comments
    Use the using directive to create an alias for a long namespace or class name. You can then use it anywhere you normally would have used that class or namespace. The using alias has a scope within the namespace you declare it in. Sample code: ...
  • The C# Team

    What's the difference between override and new?

    • 19 Comments
    This is all to do with polymorphism. When a virtual method is called on a reference, the actual type of the object that the reference refers to is used to decide which method implementation to use. When a method of a base class is overridden in a...
  • The C# Team

    Why doesn't C# have checked exceptions?

    • 11 Comments
    Checked exceptions are a very hotly debated topic in some circles, particularly for experienced Java developers moving to, or additionally learning, C#. Here are some resources that discuss the issue in depth: The Trouble With Checked Exceptions...
  • The C# Team

    What's the difference between cast syntax and using the as operator?

    • 4 Comments
    Using the as operator differs from a cast in C# in three important ways: It returns null when the variable you are trying to convert is not of the requested type or in it's inheritance chain, instead of throwing an exception. It can...
  • The C# Team

    What's the difference between string and System.String?

    • 12 Comments
    C# defines a number of aliases for CLR types. They may be used interchangably, and even mixed together, e.g. string x = new System.String(' ', 5); . These are the aliases defined: Alias CLR type string System.String ...
  • The C# Team

    What's the difference between an event and a delegate?

    • 1 Comments
    Put simply, an event gives more limited access than a delegate. If an event is made public, code in other classes can only add or remove handlers for that event; they can't necessarily fire it, find out all the handlers for it, or remove handlers...
  • The C# Team

    Why can't I use static and const together?

    • 8 Comments
    All constants declarations are implicitly static, and the C# specification states that the (redundant) inclusion of the static modifier is prohibited. I believe this is to avoid the confusion which could occur if a reader were to see two constants...
  • The C# Team

    What character escape sequences are available?

    • 20 Comments
    C# defines the following character escape sequences: \' - single quote, needed for character literals \" - double quote, needed for string literals \\ - backslash \0 - Unicode character 0 \a - Alert (character 7) \b - Backspace...
  • The C# Team

    What does an @ before the start of a string literal mean?

    • 6 Comments
    A string literal such as @"c:\Foo" is called a verbatim string literal . It basically means, "don't apply any interpretations to characters until the next quote character is reached". So, a verbatim string literal can contain backslashes (without...
Page 5 of 6 (137 items) «23456