Skip to content

Naming and default value forms

Vlada Shubina edited this page Nov 4, 2022 · 3 revisions

sourceName default value forms

When selecting a sourceName for a template you're authoring, keep in mind the default value forms applied to this symbol:

  • identity - the value as entered by user.
  • namespace - the value transformed in a way to be a correct .NET namespace. Details
  • class name - the value transformed in a way to be a correct .NET class name. Details
  • lower case namespace - same as namespace, but lower case.
  • lower case class name - same as class name, but lower case.

A good choice for sourceName is the value that produces distinct values under the below transformations, for example Template.1:

Form Source Transformed value
identity Template.1 Template.1
namespace Template.1 Template._1
class name Template.1 Template__1
lower case namespace Template.1 template._1
lower case class name Template.1 template__1

In this case, you can use the transformed value to force using the form, for example:

namespace Template._1; //uses `namespace` form

public class Template__1  //uses `class` form
{
   var str = "My template name is Template.1"; //uses `identity` form
}

In this case, if user use My-App as the name, the generated content will be as follows:

Form Source Transformed value
identity My-App My-App
namespace My-App My_App
class name My-App My_App
lower case namespace My-App my_app
lower case class name My-App my_app
namespace My_App; //uses `namespace` form

public class My_App  //uses `class` form
{
   var str = "My template name is My-App"; //uses `identity` form
}

An example of wrong sourceName is template1, in this case all form transformations result in template1. Referring to previous example:

namespace template1; //intent to use `namespace` form

public class template1  //intent to use `class` form
{
   var str = "My template name is template1"; //intent to use `identity` form
}

In this case, if the user use My-App as the name, the generated content may be as follows:

namespace My-App; //intent to use `namespace` form, but `identity` was used instead. It is not guaranteed which of `My-App`, `My_App`, `my_app` will be used here.

public class My-App //intent to use `class` form, but `identity` was used instead
{
   var str = "My template name is My_App"; //intent to use `identity` form, but `namespace` was used instead
}

As the result, this code won't compile as namespace and class are not using correct names.

For more details on value forms, refer to the article.

Clone this wiki locally
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy