我已经开发了一个随机字符串生成器,但它的行为并不像我希望的那样.我的目标是能够运行两次并生成两个不同的四个字符随机字符串.但是,它只生成一个四字符随机字符串两次.
这是代码和输出的示例:
private string RandomString(int size)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
char ch;
for (int i = 0; i < size; i++)
{
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
builder.Append(ch);
}
return builder.ToString();
}
// get 1st random string
string Rand1 = RandomString(4);
// get 2nd random string
string Rand2 = RandomString(4);
// create full rand string
string docNum = Rand1 + "-" + Rand2;
Run Code Online (Sandbox Code Playgroud)
......输出看起来像这样:UNTE-UNTE ......但看起来应该像UNTE-FWNU
如何确保两个明显随机的字符串?
我正在尝试用我的c#代码写入事件查看器,但我得到了很棒的"对象引用没有设置为对象的实例"消息.我很感激这些代码的一些帮助,无论是它的错误还是更好的方法.这是我写入事件日志的内容:
private void WriteToEventLog(string message)
{
string cs = "QualityDocHandler";
EventLog elog = new EventLog();
if (!EventLog.SourceExists(cs))
{
EventLog.CreateEventSource(cs, cs);
}
elog.Source = cs;
elog.EnableRaisingEvents = true;
elog.WriteEntry(message);
}
Run Code Online (Sandbox Code Playgroud)
这就是我试图称之为的地方:
private readonly Random _rng = new Random();
private const string _chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private string RandomString(int size)
{
try
{
char[] buffer = new char[size];
for (int i = 0; i < size; i++)
{
buffer[i] = _chars[_rng.Next(_chars.Length)];
}
return new string(buffer);
}
catch (Exception e)
{
WriteToEventLog(e.ToString());
return null; …Run Code Online (Sandbox Code Playgroud) 不确定如何获取当前表达式并获取本周的结束日期.
我当前的表达式返回日期,距离今天一周.
DateAdd(DateInterval.WeekOfYear, 1, today())
Run Code Online (Sandbox Code Playgroud)
我想要做的是返回该周的结束日期(星期六).
我需要在此表达式中添加什么才能获得所需的结果?
谢谢!
好吧,看起来我已经拥有它,但它很难看.任何人都可以帮我简化这个吗?
这就是我所拥有的,基于将Raj的例子变成一个表达式:
="一周预计积压w/e"和DateAdd(DateInterval.Day,-1*DatePart(DateInterval.WeekDay,(DateAdd(DateInterval.WeekOfYear,1,today())))+ 7,(DateAdd(DateInterval.WeekOfYear) ,1,今天())))