我如何声明可以同时存储数字和文本的数据类型,或者需要有关如何在c#中执行此操作的提示。
raners 回答:哪种数据类型可以在c#中同时存储数字和文本
像SQL> create or replace function f return sys_refcursor is
2 l_rc sys_refcursor;
3 begin
4 open l_rc for select * from dual;
5 return l_rc;
6 end f;
7 /
Function F compiled
SQL> exec :rc := f;
PL/SQL procedure successfully completed.
SQL> print :rc;
D
-
X
这样的字符串是字符串,没有其他适合的字符串。
更重要的是,序列号是一个业务概念(域知识在起作用)。像大多数业务概念一样,通常没有数据类型。
例如,对于序列号,该数字的每个部分都会有一些含义:
假设我们有
- 设施
- 一条线
- 产品的实际编号。
- 序列号应为3个字符的代码,
- 3个字符的行,
- 10位数字
我们可以这样用代码来表示:
PMXYDe1000071
然后在代码中,我们使用每个对象,例如:
public enum Line
{
ABC,PMV,DGE,RAR
}
public enum Facility
{
IWA,CHI,DET,MEX
}
public class Serial
{
public Line Line { get; set; }
public Facility Facility { get; set; }
public int SequenceNumber { get; set; }
public override string ToString()
{
var sequenceString = SequenceNumber.ToString().PadLeft(10,'0');
return $"{Line.ToString()}{Facility.ToString()}{sequenceString }";
}
}
字符串的串行对象为您提供了所需的格式,但是所有业务概念仍然安全地存在于它们自己的对象中。
上面的字符串格式对象是: var s2 = new Serial();
s2.Facility = Facility.MEX;
s2.Line = Line.PMV;
s2.SequenceNumber = 50014;
Console.WriteLine(s2.ToString());
,但是我们仍然可以基于任何一个属性执行逻辑操作。