ReSharper lets you use any code symbols (classes, methods, properties, fields, variables etc.) before you
declare them. When ReSharper detects an undeclared symbol, it suggests several
context actions for generating the corresponding symbol based on the usage, and then smartly
adjust the declaration according to the usage context:
You can set up common code generation options on the Code Editing | Members Generation page of ReSharper options.
For example, if you create a method from usage, ReSharper will not only create a method,
but also detect its return type and types of its parameters:
Depending on your settings, in the bodies of generated implementations ReSharper throws new NotImplementedException(), returns default value, or puts code that will not compile. For more information, see Code Editing | Members Generation page of ReSharper options.