将变量传递给类 c#

时间:2021-04-22 06:00:32

标签: c# class

我有一堂课,里面有一个用 ItextSharp 制作的打印表格。我在几个地方使用了相同形式的 IthextSharp,所以我认为 class 会是一件好事。效果很好,但是如果我想将一些数据(如价格)或只是要创建的文件的补丁和名称传递给该类,该怎么办?

所以我在类中设置了两个字符串路径和文件名,但是如何使用启动类的按钮单击事件从表单中传递它们?

类代码开头:

public static bool PDFGenerateOffer 
{
    get
    {
        string path = @"C:\Offers\";
        string FileName = "PC2";
        if (!Directory.Exists(path))
        {
            Directory.CreateDirectory(path);
        }
                    
        Document pdoc = new Document(PageSize.A4, 30f, 30f, 20f, 20f);
        PdfWriter pWriter = PdfWriter.GetInstance(pdoc, new FileStream(path + FileName + ".pdf", FileMode.Create));
        pdoc.Open();

为按钮点击事件制作的简单代码只是为了开始上课:

private void btnSaveOffer_Click(object sender, EventArgs e)
{
    if (ClassPDFOfferPC.PDFGenerateOffer == true)
    {
        AxAcroPDF1.LoadFile(@"C:\\Ooffers\\" + "PC.pdf");
    }
}

2 个答案:

答案 0 :(得分:3)

你可以像使用方法一样使用它。

public static bool PDFGenerateOffer(string filePath)
{
    if (!Directory.Exists(filePath))
    {
        Directory.CreateDirectory(filePath);
    }
        
    Document pdoc = new Document(PageSize.A4, 30f, 30f, 20f, 20f);
    PdfWriter pWriter = PdfWriter.GetInstance(pdoc, new FileStream(filePath + ".pdf", FileMode.Create));
    pdoc.Open();
}

使用

if (ClassPDFOfferPC.PDFGenerateOffer(@"C:\\Ooffers\\" + "PC") == true)
{
    AxAcroPDF1.LoadFile(@"C:\\Ooffers\\" + "PC.pdf");
}

答案 1 :(得分:-1)

一如既往:这取决于。方法很多。

  • 您可以使用 Avinash Reddy 的解决方案
  • 您可以将参数传递给类的构造函数
  • 您可以继承和创建 PdfClassWithSpecialParameters
  • ...