如何将方法从一种类型转换为另一种类型

时间:2012-01-11 20:06:59

标签: c# .net

建筑物窗户使用VS2010 ON ACCESS 2010形成医院的应用程序。 我想创建一个生成Patient的方法:

public string GetCurrentDate()
{
    DateTime currentDate = new DateTime();
    string todaydate = currentDate.ToShortDateString().ToString();
    return todaydate;
}

public Int32 MalePatient()
{
    return 1;
}

public Int32 FemalePatient()
{
    return 2;
}

public Int32 RadomNum()
{
  Random randomNumer = new Random();
  Int32 number = randomNumer.Next(0, 1000);
  return number;
}

public string GeneratePatientNumber();
{
    patientNumber = Convert.ToString(GetCurrentDate())"+ "-"  ????
}

此格式的数字:

"Date of Enrollment" + "PatientGender" +"randomNumber"
Example of Male patientNumber of type string:2012-1-10
Example of Female patientNumber of type string:2012-2-8
Female=2
Male=1

但是我对GeneratePatientNumber方法有一个问题,该方法应该将另一个方法转换为字符串并将它们连接起来,如上面的两个示例所示。

4 个答案:

答案 0 :(得分:3)

public enum Gender
{
    Male = 1,
    Female = 2
}

class PatientNumberGenerator
{
    private static Random _random = new Random();

    public string GetCurrentDate()
    {
        return DateTime.Today.ToShortDateString();
    }

    public int RadomNum()
    {
        return _random.Next(0, 1000);
    }

    public string GeneratePatientNumber(Gender gender)
    {
        return GetCurrentDate() + "-" + (int)gender + "-" + RadomNum();
    }
}

你可以用

来调用它
var generator = new PatientNumberGenerator();
string patientNumber = generator.GeneratePatientNumber(Gender.Female);

小心使用Random类。每次创建新实例时,它都会从当前日期和时间生成种子值。这确定了生成的第一个随机数。如果您多次快速调用RanomNum(),则可能会生成相同的随机数,因为PC中的内部时钟分辨率有限。这就是我将其声明为静态成员的原因。这只会一次创建_random

答案 1 :(得分:0)

String.Join可能是您正在寻找的内容:

public string GeneratePatientNumber()
{
    return string.Join(
        "-", 
        Convert.ToString(GetCurrentDate()), 
        GetGenderCode().ToString(),
        RadomNum().ToString());
}

当然,您需要定义GetGenderCode方法,以便根据患者的性别返回预期的代码。

答案 2 :(得分:0)

我认为你应该使用它:

public string GetCurrentDate()
{
DateTime currentDate = DateTime.Now;
string todaydate = currentDate.ToShortDateString().ToString();
return todaydate;
}

答案 3 :(得分:0)

一点点重构:

public enum PatientGender
{
    Male = 1,
    Female
}

public int RandomNum()
{
    return new Random().Next(0, 1000);
}

var patientNumber = string.Format("{0}-{1}-{2}",
                                  DateTime.UtcNow.ToString("yyyy-MM-dd"),
                                  (int)PatientGender.Male,
                                  RandomNum());

提供以下输出:

2012-01-11-1-586