ListViewItem.ListViewSubItem lvsi;是什么意思,ListViewItem.ListViewSubItem是属性还是类呢?
---------------------------------------------------------
以下是《c#入门经典》中的源代码,
其中有两句:
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;其中第一句,我明白,ListViewItem是一个类,lvi 是一个对象的实例。
但是第二句,我不明白了,
ListViewItem.ListViewSubItem 是一个属性呢,还是类呢?
如果是属性,那么语法上就过不去呀,必须用类名来定义一个对象呀?
但是,如果是类名,也不对呀。ListViewItem就是类名呀,后面加上点,再加上 ListViewSubItem ,整体上不是类名的写法呀。所以不明白,
ListViewItem.ListViewSubItem lvsi;
到底是什么意思?
private void PaintListView(string root)
{
try
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi; if (root.CompareTo("") == 0)
return; DirectoryInfo dir = new DirectoryInfo(root);
DirectoryInfo[] dirs = dir.GetDirectories();
FileInfo[] files = dir.GetFiles();
this.listView1.Items.Clear();
this.lblpath.Text = root;
this.listView1.BeginUpdate();
foreach (System.IO.DirectoryInfo di in dirs)
{
lvi = new ListViewItem();
lvi.Text = di.Name;
lvi.ImageIndex = 0;
lvi.Tag = di.FullName; lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = "";
lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = di.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi); this.listView1.Items.Add(lvi);
} foreach (FileInfo fi in files)
{
lvi = new ListViewItem();
lvi.Text = fi.Name;
lvi.ImageIndex = 1;
lvi.Tag = fi.FullName; lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = fi.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi); this.listView1.Items.Add(lvi);
} this.listView1.EndUpdate();
}
catch (System.Exception err)
{
MessageBox.Show("error: "+err.Message);
}
}
---------------------------------------------------------
以下是《c#入门经典》中的源代码,
其中有两句:
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi;其中第一句,我明白,ListViewItem是一个类,lvi 是一个对象的实例。
但是第二句,我不明白了,
ListViewItem.ListViewSubItem 是一个属性呢,还是类呢?
如果是属性,那么语法上就过不去呀,必须用类名来定义一个对象呀?
但是,如果是类名,也不对呀。ListViewItem就是类名呀,后面加上点,再加上 ListViewSubItem ,整体上不是类名的写法呀。所以不明白,
ListViewItem.ListViewSubItem lvsi;
到底是什么意思?
private void PaintListView(string root)
{
try
{
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi; if (root.CompareTo("") == 0)
return; DirectoryInfo dir = new DirectoryInfo(root);
DirectoryInfo[] dirs = dir.GetDirectories();
FileInfo[] files = dir.GetFiles();
this.listView1.Items.Clear();
this.lblpath.Text = root;
this.listView1.BeginUpdate();
foreach (System.IO.DirectoryInfo di in dirs)
{
lvi = new ListViewItem();
lvi.Text = di.Name;
lvi.ImageIndex = 0;
lvi.Tag = di.FullName; lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = "";
lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = di.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi); this.listView1.Items.Add(lvi);
} foreach (FileInfo fi in files)
{
lvi = new ListViewItem();
lvi.Text = fi.Name;
lvi.ImageIndex = 1;
lvi.Tag = fi.FullName; lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = fi.LastAccessTime.ToString();
lvi.SubItems.Add(lvsi); this.listView1.Items.Add(lvi);
} this.listView1.EndUpdate();
}
catch (System.Exception err)
{
MessageBox.Show("error: "+err.Message);
}
}
这是什么呢,莫非是自定义的???
ListViewItem.ListViewSubItem 表示“子项”,即每一列。我不明白的是语法,
ListViewItem.ListViewSubItem 为何可以占据“类名的位置”
这应该是一个属性呀。
类里面可以定义另外一个类
就像这样Class A
{
Class B{}
}