JetBrains Rider 2020.2 ヘルプ

コード注釈属性

JetBrains.Annotations フレームワークは、以下で説明する多くの属性を提供します。

これらの属性をコードで使用するには、ソースコードの注釈セクションの説明に従って JetBrains.Annotations を参照する必要があります。

注釈属性

CanBeNullAttribute

マークされた要素の値が null になることがあることを示します。そのため、使用前に null のチェックが必要です。

サンプル

[CanBeNull] object Test() => null; void UseTest() { var p = Test(); var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' }

詳しくは、価値と null 可能性の分析を参照してください。

NotNullAttribute

マークされた要素の値が決して null でないことを示します。

サンプル

[NotNull] object Foo() { return null; // Warning: Possible 'null' assignment }

詳しくは、価値と null 可能性の分析を参照してください。

ItemNotNullAttribute

IEnumerable および Task クラスと Lazy クラスのシンボルから派生した型のシンボルに適用して、Task.Result プロパティまたは Lazy.Value プロパティのコレクションアイテムの値が決して null にならないことを示すことができます。

サンプル

public void Foo([ItemNotNull]List<string> books) { foreach (var book in books) { if (book != null) // Warning: Expression is always true Console.WriteLine(book.ToUpper()); } }

詳しくは、価値と null 可能性の分析を参照してください。

ItemCanBeNullAttribute

IEnumerable や Task クラス、Lazy クラスのシンボルから派生した型のシンボルに適用して、Task.Result プロパティまたは Lazy.Value プロパティのコレクションアイテムの値が null であることを示すことができます。

サンプル

public void Foo([ItemCanBeNull]List<string> books) { foreach (var book in books) { // Warning: Possible 'System.NullReferenceException' Console.WriteLine(book.ToUpper()); } }

詳しくは、価値と null 可能性の分析を参照してください。

StringFormatMethodAttribute

マークされたメソッドがフォーマットパターンと(オプションの)引数によって文字列を作成することを示します。フォーマット文字列を含むパラメーターは、コンストラクターで指定する必要があります。書式文字列は System.String.Format(System.IFormatProvider,System.String,System.Object[])(英語) -like 形式でなければなりません。

サンプル

[StringFormatMethod("message")] void ShowError(string message, params object[] args) { /* do something */ } void Foo() { ShowError("Failed: {0}"); // Warning: Non-existing argument in format string }

メンバー

  • #ctor(System.String) 注釈付きメソッドのどのパラメーターを書式文字列として扱うかを指定する

詳しくは、カスタム文字列書式設定メソッドを参照してください。

ValueProviderAttribute

この注釈を使用して、注釈付きプロパティ / フィールド / パラメーターの値を持つ静的フィールドまたは静的フィールドを含む型を指定します。指定された型は補完候補を改善するために使用されます。

サンプル

namespace TestNamespace { public class Constants { public static int INT_CONST = 1; public const string STRING_CONST = "1"; } public class Class1 { [ValueProvider("TestNamespace.Constants")] public int myField; public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } public void Test() { Foo(/*try completion here*/);// myField = /*try completion here*/ } } }

ValueRangeAttribute

積分値が指定された間隔に該当することを示します。交差しない間隔を複数指定することができます。区間境界の値は包括的です。

サンプル

void Foo([ValueRange(0, 100)] int value) { if (value == -1) { // Warning: Expression is always 'false' ... } }

NonNegativeValueAttribute

積分値がゼロを下回ることがないことを示します。

サンプル

void Foo([NonNegativeValue] int value) { if (value == -1) { // Warning: Expression is always 'false' ... } }

InvokerParameterNameAttribute

関数の引数が文字列リテラルで、呼び出し元関数のパラメーターの 1 つに一致する必要があることを示します。例:ReSharper は System.ArgumentNullException(英語) のパラメーターに注釈を付けます。

サンプル

void Foo(string param) { if (param == null) throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol }

NotifyPropertyChangedInvocatorAttribute

メソッドが System.ComponentModel.INotifyPropertyChanged インターフェースを実装する型に含まれていることを示します。このメソッドは、一部のプロパティ値が変更されたことを通知するために使用されます。

メソッドは静的でなく、サポートされているシグネチャーの 1 つに準拠する必要があります。

  • NotifyChanged(string)

  • NotifyChanged(params string[])

  • NotifyChanged{T}(Expression{Func{T}})

  • NotifyChanged{T,U}(Expression{Func{T,U}})

  • SetProperty{T}(ref T, T, string)

サンプル

public class Foo : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; [NotifyPropertyChangedInvocator] protected virtual void NotifyChanged(string propertyName) { ... } string _name; public string Name { get { return _name; } set { _name = value; NotifyChanged("LastName"); /* Warning */ } } }
生成される通知の例:
  • NotifyChanged("Property")

  • NotifyChanged(() => Property)

  • NotifyChanged((VM x) => x.Property)

  • SetProperty(ref myField, value, "Property")

ContractAnnotationAttribute

メソッドの入力と出力の間の依存関係について説明します。

構文

関数定義テーブルの構文:
  • FDT::= FDTRow [; FDTRow] *

  • FDTRow::= 入力 => 出力 | 出力 <= 入力

  • 入力 :: = パラメーター名 : 値 [、入力 ] *

  • 出力 :: = [ParameterName: 値 ] * { 停止 | 停止 | 無効 | 何もしない | 値 }

  • 値 :: = true | false | null | notnull | カンベニュー

メソッドに単一の入力パラメーターがある場合、その名前は省略できます。
メソッドの出力に halt (または同じ void / nothing)を使用すると、メソッドは正常に戻りません(プロセスをスローまたは終了します)。
canbenull は、出力パラメーターにのみ適用されます。
FDT 行ごとに複数の [ContractAnnotation] を使用するか、セミコロンで区切られた行を持つ単一の属性を使用できます。オーダー行の概念はありません。すべての行が適用可能かどうかチェックされ、分析エンジンによって追跡される各プログラム状態ごとに適用されます。

サンプル

  • [ContractAnnotation("=> halt")] public void TerminationMethod()

  • [ContractAnnotation("null <= param:null")] // reverse condition syntax public string GetName(string surname)

  • [ContractAnnotation("s:null => true")] public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty()

  • // A method that returns null if the parameter is null, // and not null if the parameter is not null [ContractAnnotation("null => null; notnull => notnull")] public object Transform(object data)

  • [ContractAnnotation("=> true, result: notnull; => false, result: null")] public bool TryParse(string s, out Person result)

詳しくは、契約の注釈を参照してください。

LocalizationRequiredAttribute

マークされた要素をローカライズする必要があるかどうかを示します。

サンプル

[LocalizationRequiredAttribute(true)] class Foo { string str = "my string"; // Warning: Localizable string }

CannotApplyEqualityOperatorAttribute

'==' または '!=' 演算子を使用してマークされた型(またはその派生)の値を比較できないことを示し、Equals() を代わりに使用する必要があります。ただし、null との比較には '==' または '!=' を使用することは常に許可されます。

サンプル

[CannotApplyEqualityOperator] class NoEquality { } class UsesNoEquality { void Test() { var ca1 = new NoEquality(); var ca2 = new NoEquality(); if (ca1 != null) { // OK bool condition = ca1 == ca2; // Warning } } }

BaseTypeRequiredAttribute

ターゲット属性に適用すると、特定のタイプまたはタイプを実装または継承するために、ターゲット属性でマークされたすべてのタイプの要件を指定します。

サンプル

[BaseTypeRequired(typeof(IComponent)] // Specify requirement class ComponentAttribute : Attribute { } [Component] // ComponentAttribute requires implementing IComponent interface class MyComponent : IComponent { }

UsedImplicitlyAttribute

マークされたシンボルが暗黙的に使用されることを示します(たとえば、リフレクションを介して、外部ライブラリで)。このシンボルは、使用状況チェックインスペクションによって無視されます。
ImplicitUseKindFlags および ImplicitUseTargetFlags を使用して、この属性の適用方法を構成できます。

サンプル

[UsedImplicitly] public class TypeConverter {} public class SummaryData { [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] public SummaryData() {} } [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors)] public interface IService {}

MeansImplicitUseAttribute

属性、型パラメーター、および System.Type(英語) から割り当て可能な型のパラメーターに適用できます。属性に適用すると、装飾された属性は UsedImplicitlyAttribute と同じように動作します。型パラメーターまたはタイプ System.Type(英語) のパラメーターに適用される場合、対応するタイプが暗黙的に使用されることを示します。

PublicAPIAttribute

この属性は、公開されている API をマークすることを目的としており、削除してはならず、使用済みとして扱われます。

InstantHandleAttribute

呼び出されたメソッドがスタックにあるときにパラメーターが完全に処理されるかどうかをコード分析エンジンに通知します。パラメーターがデリゲートの場合、メソッドの実行中にデリゲートが実行されることを示します。パラメーターが列挙可能な場合、メソッドの実行中に列挙されることを示します。

PureAttribute

メソッドが観察可能な状態変更を行わないことを示します。 System.Diagnostics.Contracts.PureAttribute と同じです。

サンプル

[Pure] int Multiply(int x, int y) => x * y; void M() { Multiply(123, 42); // Warning: Return value of pure method is not used }

MustUseReturnValueAttribute

メソッド呼び出しの戻り値を使用する必要があることを示します。

(純粋なメソッドとは対照的に)この属性で修飾されたメソッドは状態を変更する可能性がありますが、戻り値を使用しないと意味がありません。
PureAttribute と同様に、この属性は、戻り値が使用されていない場合にメソッドの使用を検出できます。さらに、警告を表示するときに使用されるカスタムメッセージをオプションで指定できます。

[MustUseReturnValue("Use the return value to...")]
.

ProvidesContextAttribute

ある型の型メンバーまたはパラメーターを示します。その型の値を取得するために他のすべての方法の代わりに使用する必要があります。この注釈は、「コンテキスト」がある場合に役立ちます。値が評価され、どこかに保存されます。つまり、この値を取得する他のすべての方法は、既存の方法と統合する必要があります。

サンプル

class Foo { [ProvidesContext] IBarService _barService = ...; void ProcessNode(INode node) { DoSomething(node, node.GetGlobalServices().Bar); // ^ Warning: use value of '_barService' field } }

PathReferenceAttribute

パラメーターが Web プロジェクト内のファイルまたはフォルダーへのパスであることを示します。パスは、Web ルート(〜)から始まる相対パスまたは絶対パスにすることができます。

SourceTemplateAttribute

この属性でマークされた拡張メソッドは、コード補完によって「ソーステンプレート」として処理されます。ある式に対して拡張メソッドが完了すると、そのソースコードはコールサイトのテンプレートのように自動的に展開されます。

テンプレートメソッド本体には、有効なソースコードや '$' で始まる特別なコメントを入れることができます。これらのコメント内のテキストは、テンプレート適用時にソースコードとして追加されます。テンプレートパラメーターは、追加のメソッドパラメーターとして、または 2 つの '$' 記号で囲まれた識別子として使用できます。パラメーターのマクロを指定するには、MacroAttribute 属性を使用します。

サンプル

この例では、'forEach' メソッドは、通常の C# 'foreach' ステートメントを生成し、キャレットをブロック内に配置する、列挙型のすべての値に対して使用できるソーステンプレートです。
[SourceTemplate] public static void forEach<T>(this IEnumerable<T> xs) { foreach (var x in xs) { //$ $END$ } }

MacroAttribute

SourceTemplateAttribute のパラメーターにマクロを指定できます。

メソッド全体またはその追加パラメーターのいずれかに属性を適用できます。マクロ式はプロパティで定義されます。メソッドに適用される場合、ターゲットテンプレートパラメーターはターゲットプロパティで定義されます。マクロをサイレントにパラメーターに適用するには、Editable プロパティの値を -1 に設定します。

サンプル

ソーステンプレートメソッドに属性を適用する:
[SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] public static void forEach<T>(this IEnumerable<T> collection) { foreach (var item in collection) { //$ $END$ } }
テンプレートメソッドのパラメーターに属性を適用する:
[SourceTemplate] public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { /*$ var $x$Id = "$newguid$" + x.ToString(); x.DoSomething($x$Id); */ }

メンバー

  • Expression

    テンプレートが展開されたときに SourceTemplateAttribute パラメーターに対して実行されるマクロを指定できます。

  • Editable

    テンプレートのデプロイ時にターゲットパラメーターのどの出現箇所が編集可能になるかを指定できます。

    ターゲットパラメーターがテンプレートで何回か使用されている場合、1 つの出現箇所だけが編集可能になります。他の発生は同期して変更されます。編集可能な出現箇所の 0 から始まるインデックスを指定するには、値 > = 0 を使用します。テンプレートが展開されたときにパラメーターを編集できないようにするには、-1 を使用します。

  • Target

    MacroAttribute がテンプレートメソッドに適用されている場合、SourceTemplateAttribute のターゲットパラメーターを指定します。

AspMvcActionAttribute

ASP.NET MVC 属性。パラメーターに適用すると、パラメーターが MVC アクションであることを示します。メソッドに適用すると、MVC アクション名はコンテキストから暗黙的に計算されます。 System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) に似たカスタムラッパーにこの属性を使用します。

AspMvcAreaAttribute

ASP.NET MVC 属性。マークされたパラメーターが MVC 領域であることを示します。 System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String) に似たカスタムラッパーにこの属性を使用します。

AspMvcControllerAttribute

ASP.NET MVC 属性。パラメーターに適用すると、パラメーターが MVC コントローラーであることを示します。メソッドに適用すると、MVC コントローラー名はコンテキストから暗黙的に計算されます。 System.Web.Mvc.Html.ChildActionExtensions.RenderAction(HtmlHelper, String, String) に似たカスタムラッパーにこの属性を使用します。

AspMvcMasterAttribute

ASP.NET MVC 属性。マークされたパラメーターが MVC マスターであることを示します。 System.Web.Mvc.Controller.View(String, String) に似たカスタムラッパーにこの属性を使用します。

AspMvcModelTypeAttribute

ASP.NET MVC 属性。マークされたパラメーターが MVC モデルタイプであることを示します。 System.Web.Mvc.Controller.View(String, Object) に似たカスタムラッパーにこの属性を使用します。

AspMvcPartialViewAttribute

ASP.NET MVC 属性。パラメーターに適用すると、パラメーターが MVC の部分ビューであることを示します。メソッドに適用すると、MVC の部分ビュー名がコンテキストから暗黙的に計算されます。 System.Web.Mvc.Html.RenderPartialExtensions.RenderPartial(HtmlHelper, String) に似たカスタムラッパーにこの属性を使用します。

AspMvcSuppressViewErrorAttribute

ASP.NET MVC 属性。クラスまたはメソッド内の MVC ビューに対してインスペクションを無効にすることができます。

AspMvcDisplayTemplateAttribute

ASP.NET MVC 属性。パラメーターが MVC 表示テンプレートであることを示します。 System.Web.Mvc.Html.DisplayExtensions.DisplayForModel(HtmlHelper, String) に似たカスタムラッパーにこの属性を使用します。

AspMvcEditorTemplateAttribute

ASP.NET MVC 属性。マークされたパラメーターが MVC エディターテンプレートであることを示します。 System.Web.Mvc.Html.EditorExtensions.EditorForModel(HtmlHelper, String) に似たカスタムラッパーにこの属性を使用します。

AspMvcTemplateAttribute

ASP.NET MVC 属性。マークされたパラメーターが MVC テンプレートであることを示します。 System.ComponentModel.DataAnnotations.UIHintAttribute(System.String) に似たカスタムラッパーにこの属性を使用します。

AspMvcViewAttribute

ASP.NET MVC 属性。パラメーターに適用すると、パラメーターが MVC ビューコンポーネントであることを示します。メソッドに適用すると、MVC ビュー名はコンテキストから暗黙的に計算されます。 System.Web.Mvc.Controller.View(Object) に似たカスタムラッパーにこの属性を使用します。

AspMvcViewComponentAttribute

ASP.NET MVC 属性。パラメーターに適用すると、パラメーターが MVC ビューコンポーネント名であることを示します。

AspMvcViewComponentViewAttribute

ASP.NET MVC 属性。パラメーターに適用すると、パラメーターが MVC ビューコンポーネントビューであることを示します。メソッドに適用される場合、MVC ビューのコンポーネントビュー名はデフォルトです。

AspMvcActionSelectorAttribute

ASP.NET MVC 属性。属性のパラメーターに適用すると、このパラメーターが MVC アクション名であることを示します。

サンプル

[ActionName("Foo")] public ActionResult Login(string returnUrl) { ViewBag.ReturnUrl = Url.Action("Foo"); // OK return RedirectToAction("Bar"); // Error: Cannot resolve action }

RazorSectionAttribute

Razor 属性。マークされたパラメーターまたはメソッドが Razor セクションであることを示します。 System.Web.WebPages.WebPageBase.RenderSection(String) に似たカスタムラッパーにこの属性を使用します。

CollectionAccessAttribute

メソッド、コンストラクターの呼び出し、またはコレクションの型に対するプロパティアクセスが、コレクションの内容に与える影響を示します。CollectionAccessType を使用してアクセスタイプを指定します。

この属性を使用すると、すべてのコレクションメソッドにこの属性が設定されている場合にのみ意味があります。

サンプル

public class MyStringCollection : List<string> { [CollectionAccess(CollectionAccessType.Read)] public string GetFirstString() { return this.ElementAt(0); } } class Test { public void Foo() { // Warning: Contents of the collection is never updated var col = new MyStringCollection(); string x = col.GetFirstString(); } }

AssertionMethodAttribute

マークされたメソッドがアサーションメソッドであることを示します。つまり、条件の 1 つが満たされている場合、コントロールフローを停止します。条件を設定するには、パラメーターの 1 つを AssertionConditionAttribute 属性でマークします。

AssertionConditionAttribute

アサーションメソッドの条件パラメーターを示します。メソッド自体には、AssertionMethodAttribute 属性でマークする必要があります。属性の必須引数はアサーションタイプです。

TerminatesProgramAttribute

マークされたメソッドが制御フローの実行を無条件に終了することを示します。例:無条件に例外をスローすることができます。

LinqTunnelAttribute

メソッドが列挙が延期された純粋な LINQ メソッドであることを示します(Enumerable.Select、.Where など)。この注釈は、LINQ メソッドチェーンを分析することにより、デリゲート型のパラメーターの [InstantHandle] 注釈の推論を可能にします。

NoEnumerationAttribute

パラメーターとして渡された IEnumerable が列挙されていないことを示します。この注釈を使用して、'IEnumerable の複数の列挙 ' インスペクションを抑制します。

サンプル

static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class { // custom check for null but no enumeration } void Foo(IEnumerable<string> values) { ThrowIfNull(values, nameof(values)); var x = values.ToList(); // No warnings about multiple enumeration }

RegexPatternAttribute

マークされたパラメーター、フィールド、またはプロパティが正規表現パターンであることを示します。

詳しくは、正規表現のアシスタンスを参照してください。

NoReorderAttribute

メンバーの並べ替え機能が、マークされたクラスのメンバーを投げ捨てるのを防ぎます。

属性はメンバーの並べ替えパターンに記述する必要があります。

詳細については、ファイルとタイプのレイアウトパターンを使用してメンバーを再配置するを参照してください。

XamlItemsControlAttribute

XAML 属性。内部項目 DataContext タイプの解決を可能にするために、ItemsSource プロパティを持ち、ItemsControl 由来の型として扱われる型を示します。

XamlItemBindingOfItemsControlAttribute

XAML 属性。 ItemsControl 由来の型の項目をバインドするために使用される、一部の BindingBase 由来の型のプロパティを示します。この注釈は、そのようなプロパティの XAML バインディングに対して DataContext 型解決を有効にします。

プロパティは、ItemsControl タイプのツリー祖先か、XamlItemsControlAttribute 属性でマークされたツリーを持つ必要があります。

XamlItemStyleOfItemsControlAttribute

XAML 属性。 ItemsControl -derived タイプのアイテムのスタイルを設定するために使用される、いくつかの Style -derived タイプのプロパティを示します。この注釈は、そのようなプロパティの XAML バインディングの DataContext タイプ解決を有効にします。

プロパティは、ItemsControl タイプのツリー祖先か、XamlItemsControlAttribute 属性でマークされたツリーを持つ必要があります。

ヘルパーの種類

ImplicitUseKindFlags

MeansImplicitUseAttribute または UsedImplicitlyAttribute でマークされている場合、暗黙的に使用されるシンボルの詳細を指定します。

メンバー

  • Access

    属性とマークされたエンティティのみが使用されます。

  • Assign

    メンバーへの暗黙的な割り当てを示します。

  • InstantiatedWithFixedConstructorSignature

    固定コンストラクターシグネチャーを持つ型の暗黙のインスタンス化を示します。つまり、使用されていないコンストラクターパラメーターは、そのように報告されません。

  • InstantiatedNoFixedConstructorSignature

    型の暗黙的なインスタンス化を示します。

ImplicitUseTargetFlags

MeansImplicitUseAttribute または UsedImplicitlyAttribute でマークされたときに暗黙的に使用されると見なされるものを指定します。

メンバー

  • Members

    属性でマークされたタイプのメンバーは使用されていると見なされます。

  • WithInheritors

    継承されたエンティティは使用されていると見なされます。

  • WithMembers

    属性でマークされたエンティティとそのすべてのメンバーが使用されていると見なされます。

CollectionAccessType

コレクションメソッドの呼び出しがコレクションの内容にどのように影響するかを定義するための CollectionAccessAttribute の値を提供します。

メンバー

  • None

    メソッドはコレクションのコンテンツを使用または変更しません。

  • Read

    メソッドはコレクションの内容だけを読み込みますが、コレクションは変更しません。

  • ModifyExistingContent

    メソッドはコレクションの内容を変更できますが、新しい要素は追加しません。

  • UpdatedContent

    メソッドは、新しい要素をコレクションに追加できます。

AssertionConditionType

アサーションタイプを指定します。アサーションメソッドの引数が条件を満たす場合、実行は継続されます。それ以外の場合、実行は中断されたものとみなされます。

メンバー

  • IS_TRUE

    マークされたパラメーターは true に評価されるべきです。

  • IS_FALSE

    マークされたパラメーターは false に評価されるべきです。

  • IS_NULL

    マークされたパラメーターは NULL 値に評価される必要があります。

  • IS_NOT_NULL

    マークされたパラメーターは null 値でないと評価される必要があります。

最終更新日 :

関連ページ:

ソースコードの注釈

JetBrains Riderのコード注釈の恩恵を受ける最も簡単な方法は、ソースコードのシンボルに注釈属性を追加して、JetBrains Riderがあなたのソリューションをより正確かつ正確に分析できるようにすることです。デフォルトでは、すべての注釈属性クラスは属性でマークされているため、コンパイラ...

価値と null 可能性の分析

JetBrains Rider は、価値分析を実行して、可能な「null」逆参照ならびに冗長ブール比較および null ・チェックを見つけるのを支援します。値を分析するさまざまな方法 :JetBrains Rider は、2 つの一般的な方法で値を分析します。言語構成体の動作を理解します。次の例では...

文字列リテラルのコード解析とヘルパー

JetBrains Riderは、コード内の文字列リテラルに一連の機能を提供します。JetBrains Riderのコード解析と多数のヘルパーの恩恵を受ける:平紐:コードに平易な文字列を使って作業しているときに、JetBrains Riderがどのように役立つのかを以下に示します。デフォルトでは、J...

契約の注釈

契約注釈では、与えられた入力に対する期待される出力を定義することができます。言い換えれば、関数の参照型とブール型引数とその戻り値の間の依存関係を定義することができます。契約注釈のメカニズムにより、より簡単で安全な方法で消費できるAPIを作成できます。契約注釈の代わりに、より単純な代替手段を使用したい...

正規表現のアシスタンス

JetBrains Rider は、.NET の正規表現で作業するための豊富なツールセットを提供します。既存の式をすばやく分析し、エラーを見つけて修正できます。新しい式を入力する際、JetBrains Rider は自動補完と検証に役立ちます。文字列リテラルの正規表現 :デフォルトでは、JetBra...

ファイルとタイプのレイアウトパターンを使用してメンバーを再配置する

JetBrains Riderは、さまざまなパターンに従ってC#ファイルのタイプおよびタイプメンバーを並べ替えることができます。パターンは、ファイル内のアイテムを並べ替えたり、指定された領域でラップしたりするときに評価される多くの条件と制約を記述することができます。ファイルレイアウトの設定は、レイヤ...