DEV Community

Cover image for 5 C# Tips that you MUST know NOW!!! ⚡
Dotnetsafer
Dotnetsafer

Posted on

5 C# Tips that you MUST know NOW!!! ⚡

If you have taken a call to grow your career in the information technology sector, knowledge of coding is essential. It is the most in-demand skill in the industry. Thus, the programming knowledge you gain and practice, in the beginning, is priceless.

Here are 5 good C# tips that will be of great help to you🤗


1. Nullable number

This tip is based on knowing that numbers CAN accept nulls. This tip is strange for many developers of other languages because we will use the symbol ? after the data type.

In this case we will use int but first let’s see what it would look like without the symbol ? 👇

using System;
namespace dotnetsafer
{
  class Program
  {
    static void Main(string[] args)
    {
      int number = null;
      Console.WriteLine(number);
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

If we simply copy and paste this code, when executed it generates an error as you can see in the following image 👇

csharp

Now we will simply add the symbol ? to int to look like int? .

Let’s see how the code would look like 👇

using System;
namespace dotnetsafer
{
  class Program
  {
    static void Main(string[] args)
    {
      int? number = null;
      Console.WriteLine(number);
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Now let’s run it again and see what happens 👇

csharp

Good! It has worked, it has not returned any error and if we check the value of number we can indeed see that yes, it is null.


2. Readonly value

In a field statement, readonly indicates that the assignment to a field can only occur as part of the declaration or in a constructor of the same class. That is, READ ONLY.

Based on this, let’s see how it works with this example 👇

using System;
namespace dotnetsafer
{
  class Program
  {
    public static readonly string Url = "dotnetsafer.com";
  }
}
Enter fullscreen mode Exit fullscreen mode

Here we can simply see that the Url value is “dotnetsafer.com”.
But… what if we try to change it later, is it possible? Let’s find out 👇

using System;
namespace dotnetsafer
{
  class Program
  {
    public static readonly string Url = "dotnetsafer.com";
    static void Main(string[] args)
    {
      Url = "";
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

We tried to change the Url value to null and no, it didn’t let us 👇

csharp

An example of use of readonly is in the connection to a database since it is always the same and we are not interested that nobody can change it.

Readonly is curious because if it is supposed to be a variable that can only be read and not modified… Could the definition of constant be applied to it?

So Readonly and Const are the same thing?

You can find the answer in this article 👇

👉👉👉👉 Const vs Readonly Explanation 👈👈👈👈


3. Detect null strings

In this tip we are going to see how we can detect if a string is null or not null. For this we are going to reuse the example of the previous tip 👇

using System;
namespace dotnetsafer
{
  class Program
  {
    public static readonly string Url = "dotnetsafer.com";
    static void Main(string[] args)
  }
}
Enter fullscreen mode Exit fullscreen mode

Now we are going to use sting.IsNullOrEmpty. This checks strings for references to null or empty strings. We simply return in console if it is null or not null 👇

using System;
namespace dotnetsafer
{
  class Program
  {
    public static readonly string Url = "dotnetsafer.com";
    static void Main(string[] args)
    {
      if (string.IsNullOrEmpty(Url))
        Console.WriteLine ("This string is null or empty.");
      else
        Console.WriteLine("This string is not null or empty.");
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

And if we execute we can see that it returns that it is not empty (as its value is “dotnetsafer.com”) 👇

csharp


4. Terminate application

Here we are going to see a very simple way for the application to exit its execution when a condition is met. Let’s see the example that we are going to use 👇

using System;
namespace dotnetsafer
{
  class Program
  {
    static void Main(string[] args)
    {
      int number = 1;
      if (number == 1)
      {
        Console.WriteLine("Exit");
      }
      Console.WriteLine("No exit");
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

At this point I want that when the condition is met (which is met), the application exits its execution. So we will use Environment.FailFast and exit with the indicated argument: “Successfully exited” 👇

using System;
namespace dotnetsafer
{
  class Program
  {
    static void Main(string[] args)
    {
      int number = 1;
      if (number == 1)
      {
        Console.WriteLine("Exit");
        Environment.FailFast("Successfully exited");
      }
      Console.WriteLine("No exit");
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

When running it, we can indeed see that the application exits its execution correctly.

csharp


5. Line break

Who is not accustomed to making line breaks with /n ? 🤔
Well, in C# there is a special way to make them. For it, inside the environment class we have NewLine 👇

using System;
namespace dotnetsafer
{
  class Program
  {
    static void Main(string[] args)
    {
      Console.WriteLine($"First{Environment.NewLine}Second");
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

With this we will have a line break. Let’s run to check it 👇

csharp


These have been 5 basic tips. I NEED YOU to comment me WHAT LEVEL you want the following (COMMENT me with EMOJI):

🟢 Basic level
🟠 Intermediate Level
🔴 Advanced Level

The emoji that is repeated the most, wins!

Discussion (3)

Collapse
jayjeckel profile image
Jay Jeckel

It is great to see people writing about C#, but your article is missing crucial information.

Environment.FailFast() is for a very specific use-case and in general one should instead use Environment.Exit() to exit an application.

FailFast() is meant to be used when the process encounters a catastrophic error, such as one where external data could be destroyed. When the method is used, not only does it log an error with the OS, generate a memory dump, and try to send information to Microsoft, it also skips any active finally blocks and doesn't call any exit events. No one wants their application to panic, memory dump, and phone Microsoft every time it closes, so please use Exit() and not FailFast() to exit applications.

Also, it is great that you mentioned Environment.NewLine, but it is misleading to not explicitly point out that Environment.NewLine is a \n on Linux and \r\n on Windows as its purpose is to abstract over the OS differences of newline characters.

Collapse
timur_kh profile image
Timur Khadimullin

I would’ve loved to see you expand a bit more on your first point. What exactly happens when you add a question mark to the type? When would you opt to do this and what are the implications? Is it even the same type? (it is in fact fascinating)

Collapse
amritdumre10 profile image
amritdumre10

Best