The requested page is not available for the requested platform. You are viewing the content for Default platform.

Extract String to Resource

Purpose

This Refactoring is used to create resource entities from string literals. The best programming practices require each string literal to be declared in a resources file. This approach makes software localization much easier.

Availability

Available when the caret is on a string literal.

Usage

  1. Place the caret on a string literal.

    Note

    The blinking cursor shows the caret's position at which the Refactoring is available.

    static void Main(string[] args) {
        string helloWorld = "Hello World!";
        Console.Write(helloWorld);
        Console.ReadKey();
    }
    
  2. Use the Ctrl + . or Ctrl + ~ shortcut to invoke the Code Actions Menu.
  3. Select Extract String to Resource from the menu.
  4. If the submenu expands, select the target RESX file or create a new one using the (Create new resource file) item.
  5. Enter the name for the new resource and press Enter.

After execution, the Refactoring creates a new entity in the selected resource file or creates a new resource file and adds the selected string to it. After that, it replaces the string literal with the resource link and creates a Text Field on the resource name.

static void Main(string[] args) {
    string helloWorld = Properties.Resources.HelloWorld;
    Console.Write(helloWorld);
    Console.ReadKey();
}

In the example above you can also use the Remove Type Qualifier refactoring (C# only) and then Inline Temp on a helloWorld variable to make your code shorter.

using CRRDemo.Properties;
//...

static void Main(string[] args) {
    Console.Write(Resources.HelloWorld);
    Console.ReadKey();
}
Note

The Extract String to Resource (replace all) menu item extracts all string literals within the current method or accessor.

See Also