【发布时间】:2014-11-18 15:24:04
【问题描述】:
假设 C# 中的代码如下。
public class Class1
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Class2
{
public int Age{ get; set; }
public int Dob{ get; set; }
}
使用上面的代码,我可以毫无问题地访问Class1 和Class2 的属性。但是,如果我做类似的事情。
public class Class1
{
public string FirstName { get; set; }
public string LastName { get; set; }
public class Class2
{
public int Age{ get; set; }
public int Dob{ get; set; }
}
}
我将无法访问Class2 的属性,但编译时没有任何错误。有人可以向我解释为什么会这样吗?我还在 C# 的学习过程中,所以如果这是基本的东西,那么我很抱歉。
更多信息
如果我想从 DB 中获取值,我使用以下代码。
public static int Age()
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
string userName = HttpContext.Current.User.Identity.Name;
Class2 info = new Class2();
using (SqlCommand cmd = new SqlCommand("SELECT Age FROM Users WHERE UserName=@userName"))
{
cmd.Parameters.AddWithValue("UserName", userName);
cmd.Connection = connection;
connection.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
info.Age= reader.GetInt32(0);
}
}
}
return info.Age;
}
}
【问题讨论】:
-
你能举个例子说明你是如何尝试“访问
Class2的属性的吗?实际上应该是可以的。 -
“我将无法访问 Class2 的属性” - 似乎完全错误...
Class1.Class2应该完全可见 - 请显示演示“无法访问”部分的代码。 -
var c2 = new Class1.Class2() { Age = 24 }; -
如果方法在 Class1 内,您添加的代码和 sql 查询应该可以正常工作
-
代码,你还没有解释什么“我无法访问 Class2 的属性,但编译时没有任何错误。”表示并显示示例 - 您发布了代码,但不清楚它是否显示“无法访问”或什么。显示和注释您认为不应该工作的代码以及您预计会在哪里出现编译时错误。
标签: c#