EditorConfig properties for C#: Syntax Style
This page lists custom ReSharper EditorConfig properties that you can use to configure code syntax style rules. Note that some properties apply to one language while others apply to several languages at once. However, for each multi-language property there is a property that can override it for a specific language, for example, default_private_modifier
and csharp_default_private_modifier
.
'var' usage in declarations
For built-in types
Property names:
[resharper_]csharp_for_built_in_types
, [resharper_]for_built_in_types
Possible values:
use_var
: Use 'var'use_var_when_evident
: Use 'var' when evidentuse_explicit_type
: Use explicit type
Examples:
use_var |
---|
int count = 42;
var builder = new StringBuilder();
int length = builder.Length;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
bool hasValue = dictionary.TryGetValue("key", out string value); |
use_var_when_evident |
---|
int count = 42;
var builder = new StringBuilder();
int length = builder.Length;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
bool hasValue = dictionary.TryGetValue("key", out string value); |
use_explicit_type |
---|
int count = 42;
var builder = new StringBuilder();
int length = builder.Length;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
bool hasValue = dictionary.TryGetValue("key", out string value); |
For simple types
Property names:
[resharper_]csharp_for_simple_types
, [resharper_]for_simple_types
Possible values:
use_var
: Use 'var'use_var_when_evident
: Use 'var' when evidentuse_explicit_type
: Use explicit type
Examples:
use_var |
---|
int count = 42;
var builder = new StringBuilder();
int length = builder.Length;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
bool hasValue = dictionary.TryGetValue("key", out string value); |
use_var_when_evident |
---|
int count = 42;
var builder = new StringBuilder();
int length = builder.Length;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
bool hasValue = dictionary.TryGetValue("key", out string value); |
use_explicit_type |
---|
int count = 42;
StringBuilder builder = new StringBuilder();
int length = builder.Length;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
bool hasValue = dictionary.TryGetValue("key", out string value); |
Elsewhere
Property names:
[resharper_]csharp_for_other_types
, [resharper_]for_other_types
Possible values:
use_var
: Use 'var'use_var_when_evident
: Use 'var' when evidentuse_explicit_type
: Use explicit type
Examples:
use_var |
---|
int count = 42;
var builder = new StringBuilder();
int length = builder.Length;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
bool hasValue = dictionary.TryGetValue("key", out string value); |
use_var_when_evident |
---|
int count = 42;
var builder = new StringBuilder();
int length = builder.Length;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
bool hasValue = dictionary.TryGetValue("key", out string value); |
use_explicit_type |
---|
int count = 42;
var builder = new StringBuilder();
int length = builder.Length;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
bool hasValue = dictionary.TryGetValue("key", out string value); |
Prefer Roslyn (Visual Studio) logic for type evidence
Property names:
[resharper_]csharp_use_roslyn_logic_for_evident_types
, [resharper_]use_roslyn_logic_for_evident_types
Possible values:
true | false
Prefer separate declarations for deconstructed variables
Property names:
[resharper_]csharp_prefer_separate_deconstructed_variables_declaration
, [resharper_]prefer_separate_deconstructed_variables_declaration
Possible values:
true | false
Examples:
true |
---|
void ApplySetting(KeyValuePair<string, object> setting, KeyValuePair<string, object>? optionalSetting)
{
(var settingName, var value) = setting;
// apply
if (optionalSetting is (var optionalSettingName, var optionalSettingValue))
{
// apply
}
} |
false |
---|
void ApplySetting(KeyValuePair<string, object> setting, KeyValuePair<string, object>? optionalSetting)
{
var (settingName, value) = setting;
// apply
if (optionalSetting is var (optionalSettingName, optionalSettingValue))
{
// apply
}
} |
Use 'var' keyword for discards
Property names:
[resharper_]csharp_prefer_explicit_discard_declaration
, [resharper_]prefer_explicit_discard_declaration
Possible values:
true | false
Examples:
true |
---|
bool RepresentsInteger(string value)
{
return int.TryParse(value, out var _);
} |
false |
---|
bool RepresentsInteger(string value)
{
return int.TryParse(value, out _);
} |
Instance members qualification
Use 'this.' qualifier for
Property names:
[resharper_]csharp_instance_members_qualify_members
, [resharper_]instance_members_qualify_members
Possible values:
none
field
property
event
method
all
Examples:
none |
---|
using System;
internal class Person
{
public Person(string name, int age)
{
_id = GenerateId();
Name = name;
Age = age;
AgeChanged += (_, newAge) => Age = newAge;
}
private readonly int _id;
public string Name { get; }
public int Age { get; private set; }
public event EventHandler<int> AgeChanged;
public int GenerateId()
{
return 42;
}
} |
field |
---|
using System;
internal class Person
{
public Person(string name, int age)
{
this._id = GenerateId();
Name = name;
Age = age;
AgeChanged += (_, newAge) => Age = newAge;
}
private readonly int _id;
public string Name { get; }
public int Age { get; private set; }
public event EventHandler<int> AgeChanged;
public int GenerateId()
{
return 42;
}
} |
property |
---|
using System;
internal class Person
{
public Person(string name, int age)
{
_id = GenerateId();
this.Name = name;
this.Age = age;
AgeChanged += (_, newAge) => this.Age = newAge;
}
private readonly int _id;
public string Name { get; }
public int Age { get; private set; }
public event EventHandler<int> AgeChanged;
public int GenerateId()
{
return 42;
}
} |
event |
---|
using System;
internal class Person
{
public Person(string name, int age)
{
_id = GenerateId();
Name = name;
Age = age;
this.AgeChanged += (_, newAge) => Age = newAge;
}
private readonly int _id;
public string Name { get; }
public int Age { get; private set; }
public event EventHandler<int> AgeChanged;
public int GenerateId()
{
return 42;
}
} |
method |
---|
using System;
internal class Person
{
public Person(string name, int age)
{
_id = this.GenerateId();
Name = name;
Age = age;
AgeChanged += (_, newAge) => Age = newAge;
}
private readonly int _id;
public string Name { get; }
public int Age { get; private set; }
public event EventHandler<int> AgeChanged;
public int GenerateId()
{
return 42;
}
} |
all |
---|
using System;
internal class Person
{
public Person(string name, int age)
{
this._id = this.GenerateId();
this.Name = name;
this.Age = age;
this.AgeChanged += (_, newAge) => this.Age = newAge;
}
private readonly int _id;
public string Name { get; }
public int Age { get; private set; }
public event EventHandler<int> AgeChanged;
public int GenerateId()
{
return 42;
}
} |
Qualify members declared in
Property names:
[resharper_]csharp_instance_members_qualify_declared_in
, [resharper_]instance_members_qualify_declared_in
Possible values:
this_class
: the same classbase_class
: the base class
Examples:
this_class |
---|
using System;
internal class Person
{
public Person(string name, int age)
{
_id = GenerateId();
Name = name;
Age = age;
AgeChanged += (_, newAge) => Age = newAge;
}
private readonly int _id;
public string Name { get; }
public int Age { get; private set; }
public event EventHandler<int> AgeChanged;
public int GenerateId()
{
return 42;
}
} |
base_class |
---|
using System;
internal class Person
{
public Person(string name, int age)
{
_id = GenerateId();
Name = name;
Age = age;
AgeChanged += (_, newAge) => Age = newAge;
}
private readonly int _id;
public string Name { get; }
public int Age { get; private set; }
public event EventHandler<int> AgeChanged;
public int GenerateId()
{
return 42;
}
} |
Static members qualification
Qualify with the name of
Property names:
[resharper_]csharp_static_members_qualify_with
, [resharper_]static_members_qualify_with
Possible values:
current_type
: Current typedeclared_type
: Declared-in type
Examples:
current_type |
---|
using System;
internal class WeatherService
{
static WeatherService()
{
Console.WriteLine(Name);
Console.WriteLine(Version);
GotRequest += (_, _) => { };
}
public static string Name = GetString();
public static Version Version => new(1, 2, 3);
public static EventHandler GotRequest;
public static string GetString()
{
return "abc";
}
} |
declared_type |
---|
using System;
internal class WeatherService
{
static WeatherService()
{
Console.WriteLine(Name);
Console.WriteLine(Version);
GotRequest += (_, _) => { };
}
public static string Name = GetString();
public static Version Version => new(1, 2, 3);
public static EventHandler GotRequest;
public static string GetString()
{
return "abc";
}
} |
Members to qualify
Property names:
[resharper_]csharp_static_members_qualify_members
, [resharper_]static_members_qualify_members
Possible values:
none
field
property
event
method
all
Examples:
none |
---|
using System;
internal class WeatherService
{
static WeatherService()
{
Console.WriteLine(Name);
Console.WriteLine(Version);
GotRequest += (_, _) => { };
}
public static string Name = GetString();
public static Version Version => new(1, 2, 3);
public static EventHandler GotRequest;
public static string GetString()
{
return "abc";
}
} |
field |
---|
using System;
internal class WeatherService
{
static WeatherService()
{
Console.WriteLine(WeatherService.Name);
Console.WriteLine(Version);
WeatherService.GotRequest += (_, _) => { };
}
public static string Name = GetString();
public static Version Version => new(1, 2, 3);
public static EventHandler GotRequest;
public static string GetString()
{
return "abc";
}
} |
property |
---|
using System;
internal class WeatherService
{
static WeatherService()
{
Console.WriteLine(Name);
Console.WriteLine(WeatherService.Version);
GotRequest += (_, _) => { };
}
public static string Name = GetString();
public static Version Version => new(1, 2, 3);
public static EventHandler GotRequest;
public static string GetString()
{
return "abc";
}
} |
event |
---|
using System;
internal class WeatherService
{
static WeatherService()
{
Console.WriteLine(Name);
Console.WriteLine(Version);
GotRequest += (_, _) => { };
}
public static string Name = GetString();
public static Version Version => new(1, 2, 3);
public static EventHandler GotRequest;
public static string GetString()
{
return "abc";
}
} |
method |
---|
using System;
internal class WeatherService
{
static WeatherService()
{
Console.WriteLine(Name);
Console.WriteLine(Version);
GotRequest += (_, _) => { };
}
public static string Name = WeatherService.GetString();
public static Version Version => new(1, 2, 3);
public static EventHandler GotRequest;
public static string GetString()
{
return "abc";
}
} |
all |
---|
using System;
internal class WeatherService
{
static WeatherService()
{
Console.WriteLine(WeatherService.Name);
Console.WriteLine(WeatherService.Version);
WeatherService.GotRequest += (_, _) => { };
}
public static string Name = WeatherService.GetString();
public static Version Version => new(1, 2, 3);
public static EventHandler GotRequest;
public static string GetString()
{
return "abc";
}
} |
Built-in types
In locals, members and parameters, prefer
Property names:
[resharper_]csharp_builtin_type_reference_style
, [resharper_]builtin_type_reference_style
Possible values:
use_keyword
: Keyworduse_clr_name
: CLR type name
Examples:
use_keyword |
---|
void SetFont(string fontFamily, int fontSize, byte[] fontData, bool useKerning)
{
if (string.IsNullOrEmpty(fontFamily))
throw new ArgumentException("Invalid font family ", nameof(fontFamily));
if (int.IsNegative(fontSize))
throw new ArgumentOutOfRangeException(nameof(fontSize));
} |
use_clr_name |
---|
void SetFont(string fontFamily, int fontSize, byte[] fontData, bool useKerning)
{
if (string.IsNullOrEmpty(fontFamily))
throw new ArgumentException("Invalid font family ", nameof(fontFamily));
if (int.IsNegative(fontSize))
throw new ArgumentOutOfRangeException(nameof(fontSize));
} |
In member access expressions, prefer
Property names:
[resharper_]csharp_builtin_type_reference_for_member_access_style
, [resharper_]builtin_type_reference_for_member_access_style
Possible values:
use_keyword
: Keyworduse_clr_name
: CLR type name
Examples:
use_keyword |
---|
void SetFont(string fontFamily, int fontSize, byte[] fontData, bool useKerning)
{
if (string.IsNullOrEmpty(fontFamily))
throw new ArgumentException("Invalid font family ", nameof(fontFamily));
if (int.IsNegative(fontSize))
throw new ArgumentOutOfRangeException(nameof(fontSize));
} |
use_clr_name |
---|
void SetFont(string fontFamily, int fontSize, byte[] fontData, bool useKerning)
{
if (string.IsNullOrEmpty(fontFamily))
throw new ArgumentException("Invalid font family ", nameof(fontFamily));
if (int.IsNegative(fontSize))
throw new ArgumentOutOfRangeException(nameof(fontSize));
} |
Also apply to native-sized integer types
Property names:
[resharper_]csharp_builtin_type_apply_to_native_integer
, [resharper_]builtin_type_apply_to_native_integer
Possible values:
true | false
Examples:
true |
---|
using System;
internal struct Buffer
{
public IntPtr Pointer;
public int SizeInBytes;
} |
false |
---|
using System;
internal struct Buffer
{
public IntPtr Pointer;
public int SizeInBytes;
} |
Reference qualification and 'using' directives
Prefer fully qualified references
Property names:
[resharper_]csharp_prefer_qualified_reference
, [resharper_]prefer_qualified_reference
Possible values:
true | false
Add 'using' directive to deepest scope
Property names:
[resharper_]csharp_add_imports_to_deepest_scope
, [resharper_]add_imports_to_deepest_scope
Possible values:
true | false
Place 'System.*' and 'Windows.*' namespaces first when sorting 'using' directives
Property names:
dotnet_sort_system_directives_first
, [resharper_]csharp_sort_usings_with_system_first
, [resharper_]sort_usings_with_system_first
Possible values:
true | false
Prefer fully qualified using name at nested scope
Property names:
[resharper_]csharp_qualified_using_at_nested_scope
, [resharper_]qualified_using_at_nested_scope
Possible values:
true | false
Use using alias directive to resolve conflicts
Property names:
[resharper_]csharp_allow_alias
, [resharper_]allow_alias
Possible values:
true | false
Allow 'global::' prefix use
Property names:
[resharper_]csharp_can_use_global_alias
, [resharper_]can_use_global_alias
Possible values:
true | false
Modifiers
Prefer explicit/implicit private modifier for type members
Property names:
[resharper_]csharp_default_private_modifier
, [resharper_]default_private_modifier
Possible values:
explicit
: Explicitimplicit
: Implicit
Examples:
Before formatting | After formatting, explicit |
---|---|
class C
{
int a;
private int b;
} | internal class C
{
private int a;
private int b;
} |
Before formatting | After formatting, implicit |
---|---|
class C
{
int a;
private int b;
} | internal class C
{
int a;
int b;
} |
Prefer explicit/implicit internal modifier for types
Property names:
[resharper_]csharp_default_internal_modifier
, [resharper_]default_internal_modifier
Possible values:
explicit
: Explicitimplicit
: Implicit
Examples:
Before formatting | After formatting, explicit |
---|---|
namespace N
{
class C
{
}
internal class D
{
}
} | namespace N;
internal class C
{
}
internal class D
{
} |
Before formatting | After formatting, implicit |
---|---|
namespace N
{
class C
{
}
internal class D
{
}
} | namespace N;
class C
{
}
class D
{
} |
Modifiers order
Property names:
[resharper_]csharp_modifiers_order
, [resharper_]modifiers_order
Arguments
Skip single arguments
Property names:
[resharper_]csharp_arguments_skip_single
, [resharper_]arguments_skip_single
Possible values:
true | false
Literal values
Property names:
[resharper_]csharp_arguments_literal
, [resharper_]arguments_literal
Possible values:
positional
: Positional argumentnamed
: Named argument
Examples:
Before formatting | After formatting, positional |
---|---|
public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} | public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} |
Before formatting | After formatting, named |
---|---|
public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} | public class Arguments
{
public void Style()
{
Bar(x: 1, d, b: true, "abc", Fx.F1, () => Bar(x: 1));
Bar(x: 1, d, b: true, "abc", Fx.F1, action: () => Bar(x: 1));
Bar(x: 1, d, b: true, "abc", e: Fx.F1, action: () => Bar(x: 1));
Bar(x: 1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(x: 1));
Bar(x: 1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(x: 1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(x: 1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(x: 1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} |
String literal values
Property names:
[resharper_]csharp_arguments_string_literal
, [resharper_]arguments_string_literal
Possible values:
positional
: Positional argumentnamed
: Named argument
Examples:
Before formatting | After formatting, positional |
---|---|
public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} | public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} |
Before formatting | After formatting, named |
---|---|
public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} | public class Arguments
{
public void Style()
{
Bar(1, d, true, s: "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, s: "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} |
Named expressions (variables, properties, methods, etc.)
Property names:
[resharper_]csharp_arguments_named
, [resharper_]arguments_named
Possible values:
positional
: Positional argumentnamed
: Named argument
Examples:
Before formatting | After formatting, positional |
---|---|
public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} | public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} |
Before formatting | After formatting, named |
---|---|
public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} | public class Arguments
{
public void Style()
{
Bar(1, y: d, true, "abc", e: Fx.F1, () => Bar(1));
Bar(1, y: d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} |
Anonymous methods (delegates and lambdas)
Property names:
[resharper_]csharp_arguments_anonymous_function
, [resharper_]arguments_anonymous_function
Possible values:
positional
: Positional argumentnamed
: Named argument
Examples:
Before formatting | After formatting, positional |
---|---|
public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} | public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} |
Before formatting | After formatting, named |
---|---|
public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} | public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} |
Other
Property names:
[resharper_]csharp_arguments_other
, [resharper_]arguments_other
Possible values:
positional
: Positional argumentnamed
: Named argument
Examples:
Before formatting | After formatting, positional |
---|---|
public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} | public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} |
Before formatting | After formatting, named |
---|---|
public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} | public class Arguments
{
public void Style()
{
Bar(1, d, true, "abc", Fx.F1, () => Bar(1));
Bar(1, d, true, "abc", Fx.F1, action: () => Bar(1));
Bar(1, d, true, "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
Bar(x: 1, y: d, b: true, s: "abc", e: Fx.F1, action: () => Bar(1));
}
public void Bar(int x, int y, bool b, string s, Fx e, Action action = null)
{
}
private enum Fx
{
F1,
F2,
F3
}
} |
Parentheses
Remove redundant parentheses
Property names:
[resharper_]csharp_parentheses_redundancy_style
, [resharper_]parentheses_redundancy_style
Possible values:
remove
: Alwaysremove_if_not_clarifies_precedence
: If not clarifies precedence
Examples:
Before formatting | After formatting, remove |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
} |
Before formatting | After formatting, remove_if_not_clarifies_precedence |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = ((9 >> (12 + x - 1)) << (2 + 1)) & (6 + 4 * 12 - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = ((9 >> (12 + a - 1)) << (2 + 1)) & (6 + 4 * 12 - 1);
var c = ((2 | 7) + 1) & b;
} |
Add parenthesis to avoid non-obvious precedence
Around operands of the following operations
Property names:
[resharper_]csharp_parentheses_non_obvious_operations
, [resharper_]parentheses_non_obvious_operations
Possible values:
none
multiplicative
: * / %additive
: + -arithmetic
: * / % + -shift
: << >>relational
: < > <= >=equality
: == !=bitwise_and
: &bitwise_exclusive_or
: ^bitwise_inclusive_or
: |bitwise
: & ^ |conditional_and
: &&conditional_or
: ||conditional
: && ||null_coalescing
: ??range
: ..
Examples:
Before formatting | After formatting, none |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, multiplicative |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - (3 % 4) * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - (3 % 4) * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, additive |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - (3 % 4 * 12);
var y = 9 >> (12 + x) - 1 << 2 + 1 & (6 + (4 * 12)) - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - (3 % 4 * 12);
var b = 9 >> (12 + a) - 1 << 2 + 1 & (6 + (4 * 12)) - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, arithmetic |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = 9 >> (12 + x) - 1 << 2 + 1 & (6 + (4 * 12)) - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - ((3 % 4) * 12);
var b = 9 >> (12 + a) - 1 << 2 + 1 & (6 + (4 * 12)) - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, shift |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = (9 >> (12 + x - 1)) << (2 + 1) & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = (9 >> (12 + a - 1)) << (2 + 1) & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, relational |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, equality |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, bitwise_and |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = (9 >> 12 + x - 1 << 2 + 1) & (6 + 4 * 12 - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = (9 >> 12 + a - 1 << 2 + 1) & (6 + 4 * 12 - 1);
var c = ((2 | 7) + 1) & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, bitwise_exclusive_or |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, bitwise_inclusive_or |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, bitwise |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = (9 >> 12 + x - 1 << 2 + 1) & (6 + 4 * 12 - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = (9 >> 12 + a - 1 << 2 + 1) & (6 + 4 * 12 - 1);
var c = ((2 | 7) + 1) & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, conditional_and |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = ((x > 5) && (y < 6)) || z == 7;
} |
Before formatting | After formatting, conditional_or |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || (z == 7);
} |
Before formatting | After formatting, conditional |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = ((x > 5) && (y < 6)) || (z == 7);
} |
Before formatting | After formatting, null_coalescing |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
Before formatting | After formatting, range |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = 9 >> 12 + x - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var z = (2 | 7) + 1 & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = (x > 5 && y < 6) || z == 7;
} |
When the operations from the following groups are nested
Property names:
[resharper_]csharp_parentheses_group_non_obvious_operations
, [resharper_]parentheses_group_non_obvious_operations
Possible values:
none
arithmetic
: * / % + - << >> & ^ |relational
: < > <= >= == !=conditional
: && || ??
Examples:
Before formatting | After formatting, none |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
var e = x > 6 != y > 6 && x != null == (y != null);
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = ((9 >> (12 + x - 1)) << (2 + 1)) & (6 + 4 * 12 - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = ((9 >> (12 + a - 1)) << (2 + 1)) & (6 + 4 * 12 - 1);
var c = ((2 | 7) + 1) & b;
var d = x > 5 && y < 6 || z == 7;
var e = x > 6 != y > 6 && x != null == (y != null);
} |
Before formatting | After formatting, arithmetic |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
var e = x > 6 != y > 6 && x != null == (y != null);
} | internal void Calculate()
{
var x = 12 - (3 % 4 * 12);
var y = ((9 >> (12 + x - 1)) << (2 + 1)) & (6 + (4 * 12) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - (3 % 4 * 12);
var b = ((9 >> (12 + a - 1)) << (2 + 1)) & (6 + (4 * 12) - 1);
var c = ((2 | 7) + 1) & b;
var d = x > 5 && y < 6 || z == 7;
var e = x > 6 != y > 6 && x != null == (y != null);
} |
Before formatting | After formatting, relational |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
var e = x > 6 != y > 6 && x != null == (y != null);
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = ((9 >> (12 + x - 1)) << (2 + 1)) & (6 + 4 * 12 - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = ((9 >> (12 + a - 1)) << (2 + 1)) & (6 + 4 * 12 - 1);
var c = ((2 | 7) + 1) & b;
var d = x > 5 && y < 6 || z == 7;
var e = (x > 6) != (y > 6) && x != null == (y != null);
} |
Before formatting | After formatting, conditional |
---|---|
void Calculate()
{
var x = 12 - ((3 % 4) * 12);
var y = ((9 >> ((12 + x) - 1)) << (2 + 1)) & ((6 + (4 * 12)) - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = 9 >> 12 + a - 1 << 2 + 1 & 6 + 4 * 12 - 1;
var c = (2 | 7) + 1 & b;
var d = x > 5 && y < 6 || z == 7;
var e = x > 6 != y > 6 && x != null == (y != null);
} | internal void Calculate()
{
var x = 12 - 3 % 4 * 12;
var y = ((9 >> (12 + x - 1)) << (2 + 1)) & (6 + 4 * 12 - 1);
var z = ((2 | 7) + 1) & y;
var a = 12 - 3 % 4 * 12;
var b = ((9 >> (12 + a - 1)) << (2 + 1)) & (6 + 4 * 12 - 1);
var c = ((2 | 7) + 1) & b;
var d = (x > 5 && y < 6) || z == 7;
var e = x > 6 != y > 6 && x != null == (y != null);
} |
Even when operations of the same type are nested
Property names:
[resharper_]csharp_parentheses_same_type_operations
, [resharper_]parentheses_same_type_operations
Possible values:
true | false
Examples:
true |
---|
internal void Calculate()
{
var x = 5 + 3 - 2 * 3 / 4;
var e = x != null == (y != null);
} |
false |
---|
internal void Calculate()
{
var x = 5 + 3 - 2 * 3 / 4;
var e = x != null == (y != null);
} |
Braces
In 'if' statement
Property names:
[resharper_]csharp_braces_for_ifelse
, [resharper_]braces_for_ifelse
Possible values:
not_required
: Do not enforcenot_required_for_both
: Enforce if any part requires bracesrequired
: Enforce alwaysrequired_for_multiline
: Enforce if body is multi-linerequired_for_multiline_statement
: Enforce if statement is multi-line
Examples:
Before formatting | After formatting, not_required |
---|---|
public void Preview(int a, int b)
{
int c;
if (a > b)
{
c = a * b;
}
else if (a == b)
c = a + b;
else
{
c = a / b;
}
} | public void Preview(int a, int b)
{
int c;
if (a > b)
c = a * b;
else if (a == b)
c = a + b;
else
c = a / b;
} |
Before formatting | After formatting, not_required_for_both |
---|---|
public void Preview(int a, int b)
{
int c;
if (a > b)
{
c = a * b;
}
else if (a == b)
c = a + b;
else
{
c = a / b;
}
} | public void Preview(int a, int b)
{
int c;
if (a > b)
c = a * b;
else if (a == b)
c = a + b;
else
c = a / b;
} |
Before formatting | After formatting, required |
---|---|
public void Preview(int a, int b)
{
int c;
if (a > b)
{
c = a * b;
}
else if (a == b)
c = a + b;
else
{
c = a / b;
}
} | public void Preview(int a, int b)
{
int c;
if (a > b)
{
c = a * b;
}
else if (a == b)
{
c = a + b;
}
else
{
c = a / b;
}
} |
Before formatting | After formatting, required_for_multiline |
---|---|
public void Preview(int a, int b)
{
int c;
if (a > b)
{
c = a * b;
}
else if (a == b)
c = a + b;
else
{
c = a / b;
}
} | public void Preview(int a, int b)
{
int c;
if (a > b)
c = a * b;
else if (a == b)
c = a + b;
else
c = a / b;
} |
Before formatting | After formatting, required_for_multiline_statement |
---|---|
public void Preview(int a, int b)
{
int c;
if (a > b)
{
c = a * b;
}
else if (a == b)
c = a + b;
else
{
c = a / b;
}
} | public void Preview(int a, int b)
{
int c;
if (a > b)
{
c = a * b;
}
else if (a == b)
{
c = a + b;
}
else
{
c = a / b;
}
} |
In 'for' statement
Property names:
[resharper_]csharp_braces_for_for
, [resharper_]braces_for_for
Possible values:
not_required
: Do not enforcerequired
: Enforce alwaysrequired_for_multiline
: Enforce if body is multi-linerequired_for_multiline_statement
: Enforce if statement is multi-line
Examples:
Before formatting | After formatting, not_required |
---|---|
public void Preview(int a, int b)
{
var c = 0;
for (var i = a; i < b; i++)
c += System.Linq.Enumerable.Range(i, a + b).Sum();
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(i, a + b)
.Sum();
}
} | public void Preview(int a, int b)
{
var c = 0;
for (var i = a; i < b; i++)
c += System.Linq.Enumerable.Range(i, a + b).Sum();
for (var i = a; i < b; i++)
c += System.Linq.Enumerable
.Range(i, a + b)
.Sum();
} |
Before formatting | After formatting, required |
---|---|
public void Preview(int a, int b)
{
var c = 0;
for (var i = a; i < b; i++)
c += System.Linq.Enumerable.Range(i, a + b).Sum();
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(i, a + b)
.Sum();
}
} | public void Preview(int a, int b)
{
var c = 0;
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable.Range(i, a + b).Sum();
}
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(i, a + b)
.Sum();
}
} |
Before formatting | After formatting, required_for_multiline |
---|---|
public void Preview(int a, int b)
{
var c = 0;
for (var i = a; i < b; i++)
c += System.Linq.Enumerable.Range(i, a + b).Sum();
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(i, a + b)
.Sum();
}
} | public void Preview(int a, int b)
{
var c = 0;
for (var i = a; i < b; i++)
c += System.Linq.Enumerable.Range(i, a + b).Sum();
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(i, a + b)
.Sum();
}
} |
Before formatting | After formatting, required_for_multiline_statement |
---|---|
public void Preview(int a, int b)
{
var c = 0;
for (var i = a; i < b; i++)
c += System.Linq.Enumerable.Range(i, a + b).Sum();
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(i, a + b)
.Sum();
}
} | public void Preview(int a, int b)
{
var c = 0;
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable.Range(i, a + b).Sum();
}
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(i, a + b)
.Sum();
}
} |
In 'foreach' statement
Property names:
[resharper_]csharp_braces_for_foreach
, [resharper_]braces_for_foreach
Possible values:
not_required
: Do not enforcerequired
: Enforce alwaysrequired_for_multiline
: Enforce if body is multi-linerequired_for_multiline_statement
: Enforce if statement is multi-line
Examples:
Before formatting | After formatting, not_required |
---|---|
public void Preview(int a, int b)
{
var c = 0;
foreach (var num in System.Linq.Enumerable.Range(a, b))
c += System.Linq.Enumerable.Range(a, b).Sum();
foreach (var num in System.Linq.Enumerable.Range(a, b))
{
c += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} | public void Preview(int a, int b)
{
var c = 0;
foreach (var num in System.Linq.Enumerable.Range(a, b))
c += System.Linq.Enumerable.Range(a, b).Sum();
foreach (var num in System.Linq.Enumerable.Range(a, b))
c += System.Linq.Enumerable
.Range(a, b)
.Sum();
} |
Before formatting | After formatting, required |
---|---|
public void Preview(int a, int b)
{
var c = 0;
foreach (var num in System.Linq.Enumerable.Range(a, b))
c += System.Linq.Enumerable.Range(a, b).Sum();
foreach (var num in System.Linq.Enumerable.Range(a, b))
{
c += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} | public void Preview(int a, int b)
{
var c = 0;
foreach (var num in System.Linq.Enumerable.Range(a, b))
{
c += System.Linq.Enumerable.Range(a, b).Sum();
}
foreach (var num in System.Linq.Enumerable.Range(a, b))
{
c += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} |
Before formatting | After formatting, required_for_multiline |
---|---|
public void Preview(int a, int b)
{
var c = 0;
foreach (var num in System.Linq.Enumerable.Range(a, b))
c += System.Linq.Enumerable.Range(a, b).Sum();
foreach (var num in System.Linq.Enumerable.Range(a, b))
{
c += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} | public void Preview(int a, int b)
{
var c = 0;
foreach (var num in System.Linq.Enumerable.Range(a, b))
c += System.Linq.Enumerable.Range(a, b).Sum();
foreach (var num in System.Linq.Enumerable.Range(a, b))
{
c += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} |
Before formatting | After formatting, required_for_multiline_statement |
---|---|
public void Preview(int a, int b)
{
var c = 0;
foreach (var num in System.Linq.Enumerable.Range(a, b))
c += System.Linq.Enumerable.Range(a, b).Sum();
foreach (var num in System.Linq.Enumerable.Range(a, b))
{
c += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} | public void Preview(int a, int b)
{
var c = 0;
foreach (var num in System.Linq.Enumerable.Range(a, b))
{
c += System.Linq.Enumerable.Range(a, b).Sum();
}
foreach (var num in System.Linq.Enumerable.Range(a, b))
{
c += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} |
In 'while' statement
Property names:
[resharper_]csharp_braces_for_while
, [resharper_]braces_for_while
Possible values:
not_required
: Do not enforcerequired
: Enforce alwaysrequired_for_multiline
: Enforce if body is multi-linerequired_for_multiline_statement
: Enforce if statement is multi-line
Examples:
Before formatting | After formatting, not_required |
---|---|
public void Preview(int a, int b)
{
while (a > b)
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b)
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} | public void Preview(int a, int b)
{
while (a > b)
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b)
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
} |
Before formatting | After formatting, required |
---|---|
public void Preview(int a, int b)
{
while (a > b)
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b)
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} | public void Preview(int a, int b)
{
while (a > b)
{
b += System.Linq.Enumerable.Range(a, b).Sum();
}
while (a > b)
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} |
Before formatting | After formatting, required_for_multiline |
---|---|
public void Preview(int a, int b)
{
while (a > b)
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b)
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} | public void Preview(int a, int b)
{
while (a > b)
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b)
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} |
Before formatting | After formatting, required_for_multiline_statement |
---|---|
public void Preview(int a, int b)
{
while (a > b)
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b)
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} | public void Preview(int a, int b)
{
while (a > b)
{
b += System.Linq.Enumerable.Range(a, b).Sum();
}
while (a > b)
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
}
} |
In 'do-while' statement
Property names:
[resharper_]csharp_braces_for_dowhile
, [resharper_]braces_for_dowhile
Possible values:
not_required
: Do not enforcerequired
: Enforce alwaysrequired_for_multiline
: Enforce if body is multi-linerequired_for_multiline_statement
: Enforce if statement is multi-line
Examples:
Before formatting | After formatting, not_required |
---|---|
public void Preview(int a, int b)
{
do
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b);
do
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
} while (a > b);
} | public void Preview(int a, int b)
{
do
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b);
do
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
while (a > b);
} |
Before formatting | After formatting, required |
---|---|
public void Preview(int a, int b)
{
do
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b);
do
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
} while (a > b);
} | public void Preview(int a, int b)
{
do
{
b += System.Linq.Enumerable.Range(a, b).Sum();
} while (a > b);
do
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
} while (a > b);
} |
Before formatting | After formatting, required_for_multiline |
---|---|
public void Preview(int a, int b)
{
do
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b);
do
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
} while (a > b);
} | public void Preview(int a, int b)
{
do
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b);
do
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
} while (a > b);
} |
Before formatting | After formatting, required_for_multiline_statement |
---|---|
public void Preview(int a, int b)
{
do
b += System.Linq.Enumerable.Range(a, b).Sum();
while (a > b);
do
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
} while (a > b);
} | public void Preview(int a, int b)
{
do
{
b += System.Linq.Enumerable.Range(a, b).Sum();
} while (a > b);
do
{
b += System.Linq.Enumerable
.Range(a, b)
.Sum();
} while (a > b);
} |
In 'using' statement
Property names:
[resharper_]csharp_braces_for_using
, [resharper_]braces_for_using
Possible values:
not_required
: Do not enforcerequired
: Enforce alwaysrequired_for_multiline
: Enforce if body is multi-linerequired_for_multiline_statement
: Enforce if statement is multi-line
Examples:
Before formatting | After formatting, not_required |
---|---|
public void Preview(System.IDisposable disposable)
{
var c = 0;
using (disposable)
c += System.Linq.Enumerable.Range(1, 42).Sum();
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} | public void Preview(System.IDisposable disposable)
{
var c = 0;
using (disposable)
c += System.Linq.Enumerable.Range(1, 42).Sum();
for (var i = a; i < b; i++)
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
} |
Before formatting | After formatting, required |
---|---|
public void Preview(System.IDisposable disposable)
{
var c = 0;
using (disposable)
c += System.Linq.Enumerable.Range(1, 42).Sum();
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} | public void Preview(System.IDisposable disposable)
{
var c = 0;
using (disposable)
{
c += System.Linq.Enumerable.Range(1, 42).Sum();
}
for (var i = a; i < b; i++)
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
} |
Before formatting | After formatting, required_for_multiline |
---|---|
public void Preview(System.IDisposable disposable)
{
var c = 0;
using (disposable)
c += System.Linq.Enumerable.Range(1, 42).Sum();
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} | public void Preview(System.IDisposable disposable)
{
var c = 0;
using (disposable)
c += System.Linq.Enumerable.Range(1, 42).Sum();
for (var i = a; i < b; i++)
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
} |
Before formatting | After formatting, required_for_multiline_statement |
---|---|
public void Preview(System.IDisposable disposable)
{
var c = 0;
using (disposable)
c += System.Linq.Enumerable.Range(1, 42).Sum();
for (var i = a; i < b; i++)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} | public void Preview(System.IDisposable disposable)
{
var c = 0;
using (disposable)
{
c += System.Linq.Enumerable.Range(1, 42).Sum();
}
for (var i = a; i < b; i++)
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
} |
In 'lock' statement
Property names:
[resharper_]csharp_braces_for_lock
, [resharper_]braces_for_lock
Possible values:
not_required
: Do not enforcerequired
: Enforce alwaysrequired_for_multiline
: Enforce if body is multi-linerequired_for_multiline_statement
: Enforce if statement is multi-line
Examples:
Before formatting | After formatting, not_required |
---|---|
public void Preview(object lockObject)
{
var c = 0;
lock (lockObject)
c += System.Linq.Enumerable.Range(1, 42).Sum();
lock (lockObject)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} | public void Preview(object lockObject)
{
var c = 0;
lock (lockObject)
c += System.Linq.Enumerable.Range(1, 42).Sum();
lock (lockObject)
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
} |
Before formatting | After formatting, required |
---|---|
public void Preview(object lockObject)
{
var c = 0;
lock (lockObject)
c += System.Linq.Enumerable.Range(1, 42).Sum();
lock (lockObject)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} | public void Preview(object lockObject)
{
var c = 0;
lock (lockObject)
{
c += System.Linq.Enumerable.Range(1, 42).Sum();
}
lock (lockObject)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} |
Before formatting | After formatting, required_for_multiline |
---|---|
public void Preview(object lockObject)
{
var c = 0;
lock (lockObject)
c += System.Linq.Enumerable.Range(1, 42).Sum();
lock (lockObject)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} | public void Preview(object lockObject)
{
var c = 0;
lock (lockObject)
c += System.Linq.Enumerable.Range(1, 42).Sum();
lock (lockObject)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} |
Before formatting | After formatting, required_for_multiline_statement |
---|---|
public void Preview(object lockObject)
{
var c = 0;
lock (lockObject)
c += System.Linq.Enumerable.Range(1, 42).Sum();
lock (lockObject)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} | public void Preview(object lockObject)
{
var c = 0;
lock (lockObject)
{
c += System.Linq.Enumerable.Range(1, 42).Sum();
}
lock (lockObject)
{
c += System.Linq.Enumerable
.Range(1, 42)
.Sum();
}
} |
In 'fixed' statement
Property names:
[resharper_]csharp_braces_for_fixed
, [resharper_]braces_for_fixed
Possible values:
not_required
: Do not enforcerequired
: Enforce alwaysrequired_for_multiline
: Enforce if body is multi-linerequired_for_multiline_statement
: Enforce if statement is multi-line
Examples:
Before formatting | After formatting, not_required |
---|---|
public unsafe void Preview(string str)
{
var c = 0;
fixed (char* p = str)
p[42] = 'c';
fixed (char* p = str)
{
p[42]
=
'c';
}
} | public unsafe void Preview(string str)
{
var c = 0;
fixed (char* p = str)
p[42] = 'c';
fixed (char* p = str)
p[42]
=
'c';
} |
Before formatting | After formatting, required |
---|---|
public unsafe void Preview(string str)
{
var c = 0;
fixed (char* p = str)
p[42] = 'c';
fixed (char* p = str)
{
p[42]
=
'c';
}
} | public unsafe void Preview(string str)
{
var c = 0;
fixed (char* p = str)
{
p[42] = 'c';
}
fixed (char* p = str)
{
p[42]
=
'c';
}
} |
Before formatting | After formatting, required_for_multiline |
---|---|
public unsafe void Preview(string str)
{
var c = 0;
fixed (char* p = str)
p[42] = 'c';
fixed (char* p = str)
{
p[42]
=
'c';
}
} | public unsafe void Preview(string str)
{
var c = 0;
fixed (char* p = str)
p[42] = 'c';
fixed (char* p = str)
{
p[42]
=
'c';
}
} |
Before formatting | After formatting, required_for_multiline_statement |
---|---|
public unsafe void Preview(string str)
{
var c = 0;
fixed (char* p = str)
p[42] = 'c';
fixed (char* p = str)
{
p[42]
=
'c';
}
} | public unsafe void Preview(string str)
{
var c = 0;
fixed (char* p = str)
{
p[42] = 'c';
}
fixed (char* p = str)
{
p[42]
=
'c';
}
} |
Remove redundant braces
Property names:
[resharper_]csharp_braces_redundant
, [resharper_]braces_redundant
Possible values:
true | false
Code body
Methods and operators
Property names:
[resharper_]csharp_method_or_operator_body
, [resharper_]method_or_operator_body
Possible values:
expression_body
: Expression bodyblock_body
: Block body
Examples:
Before formatting | After formatting, expression_body |
---|---|
class Preview
{
int Add(int a, int b)
{
return a + b;
}
void SideEffect(DB db)
{
Drop(db);
}
static bool operator true(Preview p)
{
return false;
}
} | internal class Preview
{
private int Add(int a, int b) => a + b;
private void SideEffect(DB db)
{
Drop(db);
}
static bool operator true(Preview p) => false;
} |
Before formatting | After formatting, block_body |
---|---|
class Preview
{
int Add(int a, int b)
{
return a + b;
}
void SideEffect(DB db)
{
Drop(db);
}
static bool operator true(Preview p)
{
return false;
}
} | internal class Preview
{
private int Add(int a, int b)
{
return a + b;
}
private void SideEffect(DB db)
{
Drop(db);
}
static bool operator true(Preview p)
{
return false;
}
} |
Local functions
Property names:
[resharper_]csharp_local_function_body
, [resharper_]local_function_body
Possible values:
expression_body
: Expression bodyblock_body
: Block body
Examples:
Before formatting | After formatting, expression_body |
---|---|
class Demo
{
public void Preview()
{
int CalculateTheAnswer()
{
return 42;
}
int answer = CalculateTheAnswer();
Output(answer);
}
} | internal class Demo
{
public void Preview()
{
int CalculateTheAnswer() => 42;
int answer = CalculateTheAnswer();
Output(answer);
}
} |
Before formatting | After formatting, block_body |
---|---|
class Demo
{
public void Preview()
{
int CalculateTheAnswer()
{
return 42;
}
int answer = CalculateTheAnswer();
Output(answer);
}
} | internal class Demo
{
public void Preview()
{
int CalculateTheAnswer()
{
return 42;
}
int answer = CalculateTheAnswer();
Output(answer);
}
} |
Constructors and destructors
Property names:
[resharper_]csharp_constructor_or_destructor_body
, [resharper_]constructor_or_destructor_body
Possible values:
expression_body
: Expression bodyblock_body
: Block body
Examples:
Before formatting | After formatting, expression_body |
---|---|
class Preview
{
public Preview(string message)
{
Message = message;
}
~Preview()
{
throw new Exception();
}
} | internal class Preview
{
public Preview(string message) => Message = message;
~Preview() => throw new Exception();
} |
Before formatting | After formatting, block_body |
---|---|
class Preview
{
public Preview(string message)
{
Message = message;
}
~Preview()
{
throw new Exception();
}
} | internal class Preview
{
public Preview(string message)
{
Message = message;
}
~Preview()
{
throw new Exception();
}
} |
Properties, indexers, and events
Property names:
[resharper_]csharp_accessor_owner_body
, [resharper_]accessor_owner_body
Possible values:
expression_body
: Expression bodyaccessors_with_expression_body
: Accessors with expression bodyaccessors_with_block_body
: Accessors with block body
Examples:
Before formatting | After formatting, expression_body |
---|---|
class Preview
{
int PropertyA
{
get { return field; }
set { field = value; }
}
int PropertyB => field;
int this[int i]
{
get { return array[i]; }
set { array[i] = value; }
}
event EventHandler MissionComplete
{
add { action += value; }
remove { action -= value; }
}
} | internal class Preview
{
private int PropertyA
{
get => field;
set => field = value;
}
private int PropertyB => field;
private int this[int i]
{
get => array[i];
set => array[i] = value;
}
private event EventHandler MissionComplete
{
add => action += value;
remove => action -= value;
}
} |
Before formatting | After formatting, accessors_with_expression_body |
---|---|
class Preview
{
int PropertyA
{
get { return field; }
set { field = value; }
}
int PropertyB => field;
int this[int i]
{
get { return array[i]; }
set { array[i] = value; }
}
event EventHandler MissionComplete
{
add { action += value; }
remove { action -= value; }
}
} | internal class Preview
{
private int PropertyA
{
get => field;
set => field = value;
}
private int PropertyB
{
get => field;
}
private int this[int i]
{
get => array[i];
set => array[i] = value;
}
private event EventHandler MissionComplete
{
add => action += value;
remove => action -= value;
}
} |
Before formatting | After formatting, accessors_with_block_body |
---|---|
class Preview
{
int PropertyA
{
get { return field; }
set { field = value; }
}
int PropertyB => field;
int this[int i]
{
get { return array[i]; }
set { array[i] = value; }
}
event EventHandler MissionComplete
{
add { action += value; }
remove { action -= value; }
}
} | internal class Preview
{
private int PropertyA
{
get { return field; }
set { field = value; }
}
private int PropertyB
{
get { return field; }
}
private int this[int i]
{
get { return array[i]; }
set { array[i] = value; }
}
private event EventHandler MissionComplete
{
add { action += value; }
remove { action -= value; }
}
} |
Namespaces
Property names:
[resharper_]csharp_namespace_body
, [resharper_]namespace_body
Possible values:
file_scoped
: File-scopedblock_scoped
: Block-scoped
Examples:
Before formatting | After formatting, file_scoped |
---|---|
namespace PreviewNamespace
{
public class C
{
}
} | namespace PreviewNamespace;
public class C
{
} |
Before formatting | After formatting, block_scoped |
---|---|
namespace PreviewNamespace
{
public class C
{
}
} | namespace PreviewNamespace
{
public class C
{
}
} |
Apply style heuristics
Property names:
[resharper_]csharp_use_heuristics_for_body_style
, [resharper_]use_heuristics_for_body_style
Possible values:
true | false
Examples:
Before formatting | After formatting, true |
---|---|
class Preview
{
void VoidReturningMethod(DB db)
{
Drop(db);
}
int Assignment(int value)
{
return Property = value;
}
Action ReturnStatementBodiedLambda()
{
return () => { Foo(); };
}
} | internal class Preview
{
private void VoidReturningMethod(DB db)
{
Drop(db);
}
private int Assignment(int value)
{
return Property = value;
}
private Action ReturnStatementBodiedLambda()
{
return () => { Foo(); };
}
} |
Before formatting | After formatting, false |
---|---|
class Preview
{
void VoidReturningMethod(DB db)
{
Drop(db);
}
int Assignment(int value)
{
return Property = value;
}
Action ReturnStatementBodiedLambda()
{
return () => { Foo(); };
}
} | internal class Preview
{
private void VoidReturningMethod(DB db)
{
Drop(db);
}
private int Assignment(int value)
{
return Property = value;
}
private Action ReturnStatementBodiedLambda()
{
return () => { Foo(); };
}
} |
Attributes
Join or separate attributes in section
Property names:
[resharper_]csharp_force_attribute_style
, [resharper_]force_attribute_style
Possible values:
join
: Joinseparate
: Separate
Examples:
Before formatting | After formatting, join |
---|---|
namespace N
{
[Attr1, Attr2]
[Attr3]
class C
{
}
} | namespace N;
[Attr1, Attr2, Attr3]
internal class C
{
} |
Before formatting | After formatting, separate |
---|---|
namespace N
{
[Attr1, Attr2]
[Attr3]
class C
{
}
} | namespace N;
[Attr1]
[Attr2]
[Attr3]
internal class C
{
} |
Trailing comma
Before a new line in multiline lists
Property names:
[resharper_]csharp_trailing_comma_in_multiline_lists
, [resharper_]trailing_comma_in_multiline_lists
Possible values:
true | false
Examples:
true |
---|
var myArray = new[]
{
item1,
item2,
}; |
false |
---|
var myArray = new[]
{
item1,
item2
}; |
When the last element is not followed by a new line
Property names:
[resharper_]csharp_trailing_comma_in_singleline_lists
, [resharper_]trailing_comma_in_singleline_lists
Possible values:
true | false
Examples:
true |
---|
var myArray = new[] { item1, item2, }; |
false |
---|
var myArray = new[] { item1, item2 }; |
Object creation
When created type is evident from usage
Property names:
[resharper_]csharp_object_creation_when_type_evident
, [resharper_]object_creation_when_type_evident
Possible values:
target_typed
: Omit type: 'new()'explicitly_typed
: Specify type: 'new T()'
Examples:
target_typed |
---|
using System;
internal class MyService : ServiceBase
{
public override Version Version => new Version(1, 2, 3);
} |
explicitly_typed |
---|
using System;
internal class MyService : ServiceBase
{
public override Version Version => new Version(1, 2, 3);
} |
When created type is not evident from usage
Property names:
[resharper_]csharp_object_creation_when_type_not_evident
, [resharper_]object_creation_when_type_not_evident
Possible values:
target_typed
: Omit type: 'new()'explicitly_typed
: Specify type: 'new T()'
Examples:
target_typed |
---|
using System;
Version GetVersion()
{
// many lines of code
// ...
return new Version(1, 2, 3);
} |
explicitly_typed |
---|
using System;
Version GetVersion()
{
// many lines of code
// ...
return new Version(1, 2, 3);
} |
Default value
When type is evident from usage
Property names:
[resharper_]csharp_default_value_when_type_evident
, [resharper_]default_value_when_type_evident
Possible values:
default_literal
: Omit type: 'default'default_expression
: Specify type: 'default(T)'
Examples:
default_literal |
---|
using System;
internal class MyService : ServiceBase
{
public override Guid Guid => default(Guid);
} |
default_expression |
---|
using System;
internal class MyService : ServiceBase
{
public override Guid Guid => default(Guid);
} |
When type is not evident from usage
Property names:
[resharper_]csharp_default_value_when_type_not_evident
, [resharper_]default_value_when_type_not_evident
Possible values:
default_literal
: Omit type: 'default'default_expression
: Specify type: 'default(T)'
Examples:
default_literal |
---|
using System;
Guid GetGuid()
{
// many lines of code
// ...
return default(Guid);
} |
default_expression |
---|
using System;
Guid GetGuid()
{
// many lines of code
// ...
return default(Guid);
} |
Patterns
Null checking pattern style
Property names:
[resharper_]csharp_null_checking_pattern_style
, [resharper_]null_checking_pattern_style
Possible values:
empty_recursive_pattern
: '{ }' patternnot_null_pattern
: 'not null' pattern
Examples:
empty_recursive_pattern |
---|
public void Log(string? text)
{
if (text is not null)
Console.WriteLine(text);
} |
not_null_pattern |
---|
public void Log(string? text)
{
if (text is not null)
Console.WriteLine(text);
} |