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;
        }
    }
}

C# 使用方法访问对象和类

更面向对象的模式是向 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 无法访问。