Incorrect "use object initializer" advice from R#
Given the code...
public interface I { string Name { get; set; } }
class A : I
{
string I.Name { get; set; }
}
class Program
{
static void Main(string[] args)
{
I a = new A();
a.Name = "a";
}
}
R# marks the keyword "new" with "Use object initializer". However, accepting the refactor ends up with an error on the Name assignment "Cannot access private property 'Name' here".
Two issues:
1. The "Use object initializer" is not taking into account the inability to set Name on an object of type A without going through the interface.
2. The "Cannot access private property here" is a misleading message. The compiler error is "A does not contain a definition for 'Name'" which is more accurate.
This occurs in both the released 5.1.1 and 5.1.1753.3.
Please sign in to leave a comment.
Thank you for the feedback.
The problem is fixed in ReSharper 6.0