C# 使用方法访问对象和类
本文关键字:对象 访问 使用方法 | 更新日期: 2023-09-27 17:55:20
我在 Format1 类中有 9 个字符串,我想转换为 Format2 类中看到的不同类型,但是 3 个字符串仍将保留为字符串类型。 我决定开始玩它们,直到我得到一个我满意的代码。
正如您在 Form1 中看到的那样.cs代码中,我真正想在按钮单击事件上做的只是调用 getConvert() 方法并让它处理所有内容。 显然,我错过了一些东西。 我必须用我丑陋的 6 行来调用一切。
您在代码中的注释中看到我的非工作尝试。 这次我做错了什么??
你也可以在这里获取我的来源:https://mega.co.nz/#!64QzERRR!Qit9SDZQ7kW7rNCAUUHHDRZUUvZY9z0ukgfuqVt00mE
public class Format1
{
public string Name { get; set; }
public string Year { get; set; }
public string Director { get; set; }
public string AverageRating { get; set; }
public string LeadingActor1 { get; set; }
public string LeadingActor2 { get; set; }
public string LeadingActor3 { get; set; }
public string Language { get; set; }
public string ImdbLink { get; set; }
}
public class Format2 : Format1
{
public int Year { get; set; }
public int AverageRating {get; set;}
public string LeadingActors { get; set; }
public bool IsInEnglish { get; set; }
public bool HasImdbLink { get; set; }
public Format2 getConvert()
{
Format2 converted = new Format2();
//converted.Name = textBox1.Text;
//textBox18.Text = converted.Name;
converted.Name = this.Name;
converted.Director = this.Director;
converted.ImdbLink = this.ImdbLink;
return converted;
}
}
namespace as3_DVDproject
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Format2 converted = new Format2();
private void label1_Click(object sender, EventArgs e)
{
}
private void label8_Click(object sender, EventArgs e)
{
}
private void label9_Click(object sender, EventArgs e)
{
}
private void okButton_Click(object sender, EventArgs e)
{
//converted.getConvert();
converted.Name = textBox1.Text;
textBox18.Text = converted.Name;
converted.Director = textBox3.Text;
textBox16.Text = converted.Director;
converted.ImdbLink = textBox9.Text;
textBox10.Text = converted.ImdbLink;
}
}
}
更面向对象的模式是向 Format2 添加一个采用 Format1 的构造函数,或者为 Format2 添加一个采用 Format1 并返回 Format2 的静态方法。 不过,实际的映射代码对我来说并不是那么冗长,您可以将其放在其中任何一个位置。
private void okButton_Click(object sender, EventArgs e)
{
Format1 one = new Format1(textBox1.Text, converted.Name, textBox3.Text, converted.Director);
Format2 two = new Format2(one);
}
您希望对象知道如何构造自身,而不是在窗体中构建它们。
至于您重新尝试(我认为问题是关于)分配转换的值。使用 TextBox1 命名为 TextBox1 或反之亦然将失败,因为文本框未在该类中声明,它们是在 Form1 类中声明的,并且类 Format2 无法访问。