2

これはクラス プロパティの配列ですか、それともプロパティ クラス配列ですか? また、C# でクラスの各要素ではなく各行にアクセスするにはどうすればよいですか? ありがとう!

public partial class AdvancedSearchResult {

    private SearchResults[] searchResultsField;

    /// <remarks/>
    **[System.Xml.Serialization.XmlElementAttribute("SearchResults")]
    public SearchResults[] SearchResults { <-------NOT SURE HOW TO DEFINE THIS
        get {
            return this.searchResultsField;
        }
        set {
            this.searchResultsField = value;
        }
    }**


public partial class SearchResults {

    private int dIDField;

    private bool dIDFieldSpecified;

    private int dRevisionIDField;

    ...............etc
4

3 に答える 3

0

私があなたを正しく理解していれば:

  1. SearchResultsそれがクラスの名前であるため、プロパティを呼び出さないでください。それを呼び出しますsearchResults
  2. 次のように「行」にアクセスしますsearchResults[rowNumber]

searchResultsFieldすべてのメンバーがSearchResultsクラスインスタンスである配列です。そして、(事実上)あなたの財産もそうです。したがって、これはクラス インスタンスの配列です

プロパティのフィールドにアクセスするには、使用しますsearchResults[rowNumber].fieldName(それらがパブリック フィールドであると仮定します)。

あなたのコメントのために- これはリフレクションの簡単な例です:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        MyClass myClass = new MyClass() { i = "a", j = "b" };
        FieldInfo[] infos = typeof(MyClass).GetFields();
        foreach (FieldInfo info in infos)
            Text += info.GetValue(myClass);
    }
}


class MyClass
{
    public string i;
    public string j;
}

そして一番上に追加します:

using System.Reflection;
于 2013-05-13T21:03:12.330 に答える
0

SearchResults は AdvancedSearchResult クラスのプロパティです。これは、searchResultsField と呼ばれる SearchResults 項目のプライベート配列を取得/設定します。

次のようにアクセスします。

var result=new AdvancedSearchResult();

foreach(var item in result.SearchResults)
{  var myId= item.dIDField; 
   var isSpecified=item.dIDFieldSpecified;
   ...
}
于 2013-05-13T21:08:12.113 に答える