【问题标题】:What does (type1)+(type2) means using GetType().ToString()?(type1)+(type2) 使用 GetType().ToString() 是什么意思?
【发布时间】:2012-11-08 23:11:03
【问题描述】:

我正在编写一个小控制台应用程序来测试一些基本的 MS ProjectServer 互操作性。我可以毫无问题地连接到服务器,并且我试图将我的for (int i = 0; i < projectDataSet.Project.Count; i++) 循环之一重构为foreach (var project in projectDataSet.Project) 循环。

当我执行for 时,projectDataSet.Project 的类型是SvcProject.ProjectDataSet.ProjectDataTable。所以,我做了以下事情:

projectClient.ReadProject(projectDataSet.Project[i].PROJ_UID,
    SvcProject.DataStoreEnum.WorkingStore);

获取我需要的 Project 对象。

但是当我执行foreach 变体时,对象project 的类型是SvcProject.ProjectDataSet+ProjectRow。我不知道如何处理这个。究竟是什么意思?

【问题讨论】:

    标签: c# types tostring gettype


    【解决方案1】:

    表示type2嵌套在type1

    class type1
    {
       public class type2 { }
    }
    

    为了证明这一点:

    foreach (var t in typeof (A).GetNestedTypes(BindingFlags.Public | BindingFlags.NonPublic))
        Console.WriteLine(t.FullName);
    
    class A
    {
        private class B
        {
        }
    
        protected class C
        {
        }
    
        internal class D
        {
        }
    
        public class E
        {
    
        }
    }
    

    输出:

    YourAssembly.A+B YourAssembly.A+C YourAssembly.A+D YourAssembly.A+E

    【讨论】:

    • 谢谢。以及如何访问 foreach 循环中的 E 对象的道具?喜欢: var list = new List(); list.Add(新 E()); foreach(var myVar in list) Console.WriteLine("{0}", "我应该在这里放什么来检索有用的道具?");
    • @BrunoSaboia:这与其他任何Type 的方式相同。如果您不知道怎么做,请再问一个问题,因为它实际上不在您在这里提出的问题的范围内。
    • 好的,谢谢,我正在考虑使用反射,但这有点矫枉过正,如果是这种情况,最好坚持使用 for 循环
    猜你喜欢
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多