在我的第一堂课上,我有这个代码:
public string getUser()
{
string UserName = metroTextBox4.Text;
return UserName;
}
public string EmailAddr()
{
string Addr = metroTextBox1.Text;
return Addr;
}
在我的其他班级中,我有以下代码:
private async Task kka(int value)
{
var senderg = new SmtpSender(() => new SmtpClient("localhost")
{
EnableSsl = false,
DeliveryMethod = SmtpDeliveryMethod.Network,
Port = 25
});
Email.DefaultSender = senderg;
var email = await Email
.From("myEmail@example.com")
.To($"{EmailAddr()}", $"{getUser()}") //At getUser() and at EmailAddr i have the errors
.Subject("Salut")
.Body("Mersi ca mi-ai cumparat produsul, sa ai pofta!" +
$"Comanda ta a avut valoarea de {value} lei")
.SendAsync();
}
错误是“当前上下文中不存在名称‘EmailAddr’”和“当前上下文中不存在名称‘getUser’”
答案 0 :(得分:1)
您必须在第二个类的方法中创建第一个类的对象,并使用该引用引用方法 EmailAddr() 和 getUser()。
FirstClass fObj = new FirstClass();
fObj.EmailAddr();
fObj.getUser();
或者正如Olivier在评论中正确提到的那样,您可以在第二个类的构造函数中传递对第一个类的引用
答案 1 :(得分:0)
这么多不同的方法。会给你第一个 2 选项 1:发送电子邮件作为函数的参数
private async Task kka(int value, string email)
选项 2:使用静态类来设置属性。所以你可以从其他班级阅读它
void Main()
{
EmailAddr2.EmailAddress = EmailAddr();
TODO();
}
private void TODO()
{
EmailAddr2.EmailAddress.Dump();
}
public string EmailAddr()
{
string Addr = "my@email.com";
return Addr;
}
public static class EmailAddr2
{
public static string EmailAddress {get;set;}
}