gpt4 book ai didi

c# - 无法访问对象初始值设定项内的属性

转载 作者:行者123 更新时间:2023-11-30 19:38:16 25 4
gpt4 key购买 nike

考虑以下代码。

List<MyFiles> files = new List<MyFiles>();
....
while (reader.Read())
{
var a = new MyFiles
{
FileName = reader["Filename"].ToString(),
FileLocation = reader["Filelocation"].ToString(),
FullPath = FileLocation + @"\" + FileName // Error at this line
};
files.Add(a);
}

上面是我的方法的一个片段,它使用 SqlDataReader 从数据库中获取数据。一切正常,但当我尝试将值分配给 FullPath 属性时,我收到以下错误消息:

An object reference is required for the non-static field, method, or property 'MyFiles.FileLocation' An object reference is required for the non-static field, method, or property 'MyFiles.FileName'

我知道我可以将这些属性设为静态或创建一个实例并通过例如访问它们var b = new MyFiles(); b.文件位置..

但我的问题是为什么我不能像在上面的代码片段中那样使用 FileLocationFileName 。有什么我想念的吗?

最佳答案

您不能访问您刚刚初始化的实例的属性。

你可以使用局部变量:

int fileNameColumnOrdinal = reader.GetOrdinal("Filename");
int fileLocationColumnOrdinal = reader.GetOrdinal("Filelocation");
while (reader.Read())
{
string fileName = reader.GetString(fileNameColumnOrdinal);
string fileLocation = reader.GetString(fileLocationColumnOrdinal);
var a = new MyFiles
{
FileName = fileName,
FileLocation = fileLocation,
FullPath = System.IO.Path.Combine(fileLocation, fileName)
};
files.Add(a);
}

我还推荐使用 System.IO.Path.Combine

关于c# - 无法访问对象初始值设定项内的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33957607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com