5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C#(sharp)言語とは?これから始める方へ

Last updated at Posted at 2024-12-25

はじめに

今回は「C#(sharp)」を初心者向けにポイントを押さえて解説していきます。

そもそもC#言語とは?

C#はマイクロソフト社が開発した汎用のプログラミング言語です。
使用用途は、デスクトップアプリケーション・ウェブアプリケーション・ゲーム開発・クラウドサービス・Io・AIなど多岐に渡ります。
ただし、C#は強力で柔軟なプログラミング言語ですが、効率的なコードを書くためには、言語の特性を活かすことが重要です。

こんな人におススメ

◎C#でどんなことができるか知りたい
◎具体的な書き方が知りたい
◎守るべきコツを知りたい

以上について「10のヒント」と題して説明していきます。
 

10のヒント

ヒント①「var」の適切な使用

varを使うとコードが簡潔になりますが、すべてに使用するのは逆効果になる場合があります。可読性を優先し、型が明確な場合にのみ使用しましょう。

例(適切な使い方):

var customers = new List<string>(); // 型が明確

例(不適切な使い方):

var result = DoSomething(); // 戻り値の型が不明確

ヒント②「using」ステートメントの活用

リソースを確実に解放するために、usingステートメントを使用しましょう。コンパイラ側で自動的にリソースを破棄してくれます。特にファイル操作やデータベース接続で役立ちます。

using (var stream = new FileStream("file.txt", FileMode.Open))
{
    // ファイル操作
}

ヒント③「StringBuilder」で文字列を操作

文字列の連結にはStringBuilderを使用しましょう。stringの連結は新しいインスタンスを作成するため、パフォーマンスが低下します

var builder = new StringBuilder();
builder.Append("Hello");
builder.Append(" ");
builder.Append("World");
Console.WriteLine(builder.ToString());

ヒント④「LINQ」を活用する

C#のLINQ(Language Integrated Query)は、データ操作を効率的かつ簡潔に行う方法です。以下ではSQLに似た形式でクエリを記述する方法です。

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// 偶数のみを取得するクエリ
var evenNumbers = from num in numbers
                  where num % 2 == 0
                  select num;

foreach (var num in evenNumbers)
{
    Console.WriteLine(num);
}

ヒント⑤「async/await」で非同期処理を簡潔に

非同期プログラミングを行う場合は、asyncとawaitを活用することで、コールバックの複雑さを回避できます。

public async Task FetchDataAsync()
{
    var data = await httpClient.GetStringAsync("https://api.example.com/data");
    Console.WriteLine(data);
}

ヒント⑥ 拡張メソッドを活用

既存のクラスに新しい機能を追加する場合、拡張メソッドを使用するとコードの再利用性が向上します。

public static class StringExtensions
{
    public static bool IsNullOrEmpty(this string str)
    {
        return string.IsNullOrEmpty(str);
    }
}

使用例:

string text = null;
if (text.IsNullOrEmpty())
{
    Console.WriteLine("String is null or empty");
}

ヒント⑦「null」チェックの簡略化

C# バージョン6.0以降では、null条件演算子を使うことで、簡潔なnullチェックが可能です。

var length = myString?.Length ?? 0; // nullなら0を返す

ヒント⑧ 依存性注入(DI)の利用

DIを活用することで、テスト可能で拡張性の高いコードを実現できます。ASP.NET Coreでは、組み込みのDIコンテナを活用できます。

public class MyService
{
    private readonly IRepository _repository;

    public MyService(IRepository repository)
    {
        _repository = repository;
    }
}

ヒント⑨ 例外を適切にハンドリング

例外は必要な場合にのみ使用し、通常の制御フローに使用しないでください。また、catchで具体的な例外を指定することが重要です。

try
{
    int result = 10 / divisor;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Cannot divide by zero.");
}

ヒント⑩ コードアナライザーとスタイルガイドの使用

Visual StudioのコードアナライザーやStyleCopを使用して、コーディングスタイルを統一し、バグを防ぎましょう。

推奨ツール:

• Roslyn Code Analyzers
• StyleCop.Analyzers
• ReSharper

まとめ

効率的なコードを書くためには、C#の特性を理解し、適切なツールや技術を活用することが不可欠です。これらのヒントを日々のコーディングで実践することで、保守性が高く、パフォーマンスに優れたコードを書くことができます。ぜひ試してみてください!

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?