好的,这里有一个为视觉工作室提供了许多方便的小插件的人,或者可以帮助按键序列。
假设我有一个Person类:
class Person
{
string Name { get; set; }
int Age { get; set; }
}
我正忙着愉快地编码。我经常遇到需要为该类的所有属性赋值的情况,或者将属性的所有值分配给其他属性。
public override void CopyTo(Person myPerson)
{
myPerson.Name = "XXX";
myPerson.Age = 11;
}
我想生成这一部分:
myPerson.Name
myPerson.Age
即。只需将myPerson的所有属性转储到一个小列表中。在Visual Studio编辑器中。
我已经安装了resharper,我快速浏览了一个专门做这个的实用程序,但我找不到一个。有人可以帮忙吗?
答案 0 :(得分:9)
您可以使用属于Visual Studio 2015的the C# Interactive Window
> #r "C:/MyApp/bin/Debug/Foo.dll"
> using MyApp;
> var personType = typeof(Person);
> var personProperties = personType.GetProperties();
> foreach(var personProperty in personProperty) { Console.WriteLine($"{nameof(Person)}.{personProperty.Name}"); }
当然这可以缩短,但这会告诉你如何使用它。
另外,要设置类所在的项目,可以右键单击Solution Explorer,然后选择“使用项目初始化交互”。
答案 1 :(得分:3)
您所要做的就是在Visual Studio的立即窗口中打印出对象,您不需要R#。
e.g。 ?myPerson
所有属性都会按照您的要求打印出来。
答案 2 :(得分:3)
sample command有一个Visual Commander(3.复制到Visual Studio文本编辑器中所选类的剪贴板属性),您可以为场景进一步自定义。
答案 3 :(得分:3)
C#立即窗口很棒!这是一个单行程序,可以打印出所需格式的属性。只需使用它来满足您的需求:
typeof(MyApp.Person).GetProperties().Select(x => x.Name).Aggregate((x, y)=>x +", " +y)
答案 4 :(得分:3)
以下是Visual Studio 2017中适合我的内容:
使用
打开类编辑器Cntrl + Shift + C
然后在弹出的Class View窗口中选择包含所显示结构中所需属性的类名。该类的所有属性都将在下面的窗口窗格中列出。按住Shift并单击第一个属性,然后按住Shift键并单击列表中的最后一个属性。然后右键单击并从弹出菜单中选择复制选项。您可以从那里粘贴到Visual Studio中。第一个粘贴将如下所示:
Person.Name Person.Age
从那里你可以在每个房产后面放一个回车,这样它们就会分开来。