如何存储方法的输出
本文关键字:方法 输出 存储 何存储 | 更新日期: 2023-09-27 18:00:45
我正在寻找一种简单的方法,将方法的输出存储在某种变量中,以便其他类可以使用它。
例如:
partial class Form1 {
public string orderNumber() {
string ord="ORD"+get_next_id()+DateTime.Now.Year;
return ord;
}
}
在Form1
的实例中,用户输入购买详细信息,如姓名、地址。。。当用户点击添加条目按钮时,详细信息将保存在数据库中,ordernumber
由上述代码生成。同时,当用户单击添加条目时,它会杀死当前表单,并调出使用先前生成的ordernumber
的另一个表单。当我喜欢时
Form1 m=new Form1();
并做一些类似(下面是伪代码)的事情
m.orderNumber=string orderNUm.
它生成了我不想要的不同订单号。我想使用Form1
保存在数据库中的订单号。
我想把这个单词存储在某个地方,这样我就可以把它传给另一个类。
另一个类可以通过调用方法本身来使用结果:
public class A
{
public string orderNumber()
{
string ord = "ORD" + get_next_id() + DateTime.Now.Year;
return ord;
}
}
public class B
{
public void DoSomeWork()
{
A a = new A();
string result = a.orderNumber();
}
}
"把它存储在某个地方"的概念感觉就像是一个全局变量的概念。虽然一个人可以完成本质上相同的事情,但这是不鼓励的,因为这并不代表面向对象的设计原则。
为了理解如何在C#中做到这一点(你不应该这样做),你可以做:
static public SharedStorage
{
public string OrderNumber { get; set; }
}
// Somewhere in your code
SharedStorage.OrderNumber = a.orderNumber();
// Somewhere else in your code
string orderNumber = SharedStorage.OrderNumber;
如果你想在一个实例上设置一个订单号,然后继续使用它,你可以把逻辑放在构造函数中:
public class A
{
public string OrderNumber { get; private set; }
public A()
{
OrderNumber = "ORD" + get_next_id() + DateTime.Now.Year;
}
}
// Somewhere else in your code
A a = new A();
string orderNumber = a.OrderNumber;
这是相当基本的东西,但将其添加到类的顶部:
public string OrderCode;
接下来在return ord;
行上方添加OrderCode = ord;
现在,每当有人需要订单代码时,他们只需致电<YourClass>.OrderCode
然而,他们可以直接调用方法本身来获取订单号,因为它是公共的。
PS:orderNumber
方法不遵循c#约定。a) 它应该正确地大写(OrderNumber),b)一个更有意义的名称应该是GetOrderNumber