Если вставить этот фрагмент кода propdp, он не использует nameof оператора для имени свойства в первом параметре метода DepencendyProperty.Register и создает что-то вроде этого:Почему фрагмент кода «propdp» не использует имя оператора для имени зарегистрированного свойства?
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
// Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc...
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof(string), typeof(MyContentControl), new PropertyMetadata(""));
и obviusly может будет лучше, если вы используете оператор nameof, как в следующем примере:
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
// Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc...
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register(nameof(Text), typeof(string), typeof(MyContentControl), new PropertyMetadata(""));
'nameof' относительно новый, и я не уверен, что фрагменты могут определить, какая версия C# компилируется вашим проектом. Если вы работаете как с старыми, так и с новыми проектами C#, а фрагменты не могут определить, какая версия C# используется, то это, вероятно, причина. Храните фрагмент, поддерживающий наследие, так что он работает независимо от того, что иногда, а не «сломан» иногда (для более старых проектов). – Kritner
или его можно было просто упустить – Kritner
Или создать новый фрагмент кода, используя имяof, например «npropdp», чтобы использовать в случае, если вы используете C# 6. – joseangelmt