Help us understand the problem. What is going on with this article?

C#でキーワード(予約語)を変数名として使うには

More than 5 years have passed since last update.

(あまり役に立たないChipsです。)
推奨されていませんが可能です。ただし、予約語そのものを使うことはできません。予約語の前に @ を付けると変数とみなされます。コンテキストキーワード (*1) は @ を付けずに変数名として使える場合があります。

(参考) VB.NET では [ ] で囲むと予約語を変数とみなします。

using System;

public class EscapedName
{
  public static void Main()
  {
    var @if = 0;
    var @else = 1;
    var @switch = 2;
    var value = 3;
    var set = 4;
    var get = 5;

    Console.WriteLine(@if);
    Console.WriteLine(@else);
    Console.WriteLine(@switch);
    Console.WriteLine(value);
    Console.WriteLine(set);
    Console.WriteLine(get);
  }
}
*1 コンテキストキーワードとはプログラムの文脈内で特別な意味を持つキーワードです。例えば、value はプロパティの set メソッド内だけで特別な意味を持ちます。コンテキストキーワードには以下のようなものがあります (C# 4.0 の場合)。

    add
    alias
    ascending
    async
    await
    descending
    dynamic
    From
    get
    global
    group
    into
    join
    let
    orderby
    partial (型)
    partial (メソッド)
    remove
    Select
    Set
    value
    var
    where (ジェネリック型制約)
    where (クエリ句)
    yield

@ はメソッド名とかにも使用できるようです。次のサンプルは @if というメソッドを定義して使っています。

using System;

public class IIf
{
  // Ruby や Perl の "文 if 条件" のようなメソッド
  public static void @if(bool b, Action act)
  {
     if (b) { act(); }
  }

  public static void Main()
  {
     for (int i = 0; i < 5; i++)
     {
        @if(i % 2 == 0, ()=>{ Console.WriteLine(i); });
     }
  }
}
tadnakam
電通大出身。 趣味でプログラミングをやってます。
https://makandat.wordpress.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした