我希望最终用户能够指定自定义日期时间格式以输出到日志文件.(它控制每行的日期时间戳的前缀.)
我使用String.Format与一些串联导致ReSharper警告有关不匹配的大括号.必须有一个更合适的方法来处理这个,但我无法找到它.
string _entry = "Some event.";
public string GetFormattedEntry(string stampFormat)
{
return String.Format("{0:" + stampFormat + "}: {1}", DateTime.Now, _entry);
}
Run Code Online (Sandbox Code Playgroud)
这个想法是可以使用用户指定的格式字符串调用它,例如"yyyy-MM-dd HH:mm:ss",这将导致:
2013-12-05 14:47:57有些事件.
问题是ReSharper不喜欢拆分大括号用法(我也不喜欢).感觉就像一个黑客.有没有更好的方法将字符串格式传递给方法并使用它来格式化返回值?
(请注意,在假定用户指定的字符串可用之前,将对其进行验证.)
编辑:
为简洁起见,我简化了代码示例.实际方法迭代对象集合并相应地格式化每个对象集合.它还执行涉及富文本格式化等的其他功能,这些功能在此处不相关.
我有2个复选框,我想知道如何管理这些:如果检查了一个,那么,如果检查另一个,那么,如果两个都被检查,请执行这两个操作.
此外,如果没有选中,我单击按钮执行操作,它应显示"请检查其中一个选项或两者."
感谢您的时间
-Summey
我在C#Windows窗体上有一个numericupdown控件,如果它是<10,我有兴趣在其值中添加一个前导零.(用户输入一个时间的分钟值.)
我对C#中的覆盖/继承不是很熟悉,但它看起来好像我可能必须这样做.
看起来像EggheadCafe上的这篇文章有我需要的答案.它是否像创建一个新类一样简单,然后创建一个新类的控件?
public class TestNum : NumericUpDown
{
protected override void ValidateEditText()
{
if (base.UserEdit)
{
base.ValidateEditText();
}
}
protected override void UpdateEditText()
{
Text = Convert.ToInt32(base.Value).ToString("00");
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我不知道如何创建利用这个类的新控件.我正在使用Visual Studio 2008.对于Windows窗体来说还是非常新的.谢谢你的建议.
编辑
我能够通过编辑Designer创建的代码来完成这项工作,这样新的控件就不再是原始类的新控件了.所以在添加上面的类后,我做了以下(这些更改位于两个不同的位置,但我只显示重要的行):
更改:
this.numTest = new System.Windows.Forms.NumericUpDown();
private System.Windows.Forms.NumericUpDown numTest;
Run Code Online (Sandbox Code Playgroud)
至:
this.numTest = new SampleForm.TestNum();
private TestNum numTest;
Run Code Online (Sandbox Code Playgroud) 场景:我需要在我的项目中添加HttpUtility,我开始在我的using指令集中添加"using System.Web".然而,HttpUtility类仍然无法解决,我发现(通过这个问题)我需要添加对我的项目的引用.
问题:为什么我需要添加对此库的引用,对于大多数其他类,"using"指令就足够了?
跳到正确的类而不是元数据我该怎么办?
在visual studio 2010中,在处理c#代码时,我右键单击一些代码跳转到"Go To Definition"有时会显示我的对象定义的正确类,有时会显示元数据不是正确的类...
为什么是这样 ?
谢谢你的帮助
我对特定的BinaryReader操作感到困惑.
使用十六进制编辑器(UltraEdit)查看二进制文件时,前四个字节为:52 62 38 11.
当使用a迭代同一个文件时BinaryReader,如果我ReadInt32()先调用,我希望int值为1,382,168,593.
.ReadInt32():从当前流中读取一个4字节有符号整数,并将流的当前位置提前四个字节.
相反,我得到288,907,858.
很明显,我错过了一些明显的东西......谁能解释一下发生了什么?
我在C#winforms项目中使用ObjectListView,并希望在其中一列中显示一个小图标.
到目前为止,图标显示正常,但它不在列的中心,我找不到任何与列中的图像对齐有关的文档或代码.
代码几乎与给出的示例相同:
col_Important.AspectGetter = delegate(object x) { return ((ClassMyItem)x).IsImportant; };
col_Important.AspectToStringConverter = delegate(object x) { return String.Empty; };
col_Important.ImageGetter = delegate(object x)
{
return ((ClassMyItem)x).IsImportant? "star" : "none";
};
Run Code Online (Sandbox Code Playgroud)
有没有人处理过这个问题并知道如何使图像居中?
经过相当多的时间尝试和一些研究后,我终于投降并请求大家帮忙.这就是我的MySQL表格:
表格1:
Parent_ID | ID | Name | Quality |Price 1 | 001|Apple | good |1.50 1 | 002|Apple | medium |1.20 1 | 003|Apple | poor |0.99 2 | 004|Car | good |5000.00 2 | 005|Car | poor |200.00
表2:
Parent_ID | Var_Name | Value 1 | color | red 1 | size | big 1 | rating | 3 Star 2 | color | blue 2 | size | medium 2 | rating | ok
好的.太好了.我现在需要的是一个查询,它给了我:
Parent_ID | …