我有一个带有属性的类数组Date,即:
class Record
{
public DateTime Date { get; private set; }
}
void Summarize(Record[] arr)
{
foreach (var r in arr)
{
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我必须在这个数组中找到earliest(最小)和latest(最大)日期.
我怎么能用LINQ做到这一点?
我想在我正在开发的网站上加入一些"铃声和口哨"功能,但我不想让我的用户陷入整个机器.有没有办法可以测试当前浏览器是否加速GPU加速?
我可以检查一下UserAgents,但我一直听说它不够准确无法信任.
我想我可以构建一个canvas元素,进行一些绘制调用,然后计算它们的时间?任何低于某个阈值的东西我都可以认为对我多余的额外内容足够好了吗?这会不够好?
我在C#winforms应用程序中设置了一些默认颜色,如下所示:
readonly Color ERROR = Color.Red;
readonly Color WARNING = Color.Orange;
readonly Color OK = Color.Green;
Run Code Online (Sandbox Code Playgroud)
据我所知,readonly对我来说基本上是一个常数.如果我尝试将它们定义为常量,编译器会指示它必须是编译时常量,而Color不是.
我很好地保留这些原样,还是有一些方法来定义我应该注意的这些常量?
(目的只是为了有一个位置来更改所有颜色以进行日志记录.)
我想对特定方法进行一些性能测量,但我想平均完成所需的时间.(这是一个C#Winforms应用程序,但这个问题很适用于其他框架.)
我有一个秒表,我在方法开始时重置并在结束时停止.我想将最后10个值存储在列表或数组中.每个新增加的值都应该从列表中删除最旧的值.
我会定期调用另一种方法来平均所有存储的值.
我认为这个构造是一个循环缓冲区是正确的吗?
如何创建具有最佳性能的缓冲区?现在我有以下内容:
List<long> PerfTimes = new List<long>(10);
// ...
private void DoStuff()
{
MyStopWatch.Restart();
// ...
MyStopWatch.Stop();
PerfTimes.Add(MyStopWatch.ElapsedMilliseconds);
if (PerfTimes.Count > 10) PerfTimes.RemoveAt(0);
}
Run Code Online (Sandbox Code Playgroud)
这在某种程度上似乎效率低下,但也许并非如此.
建议?
SplitContainer的分割条中曾经有3个点.就像有三条线在StackOverflow上的问题细节的文本框,显示它可以被抓住.如何使用.NET中SplitContainer的分割条执行此操作?
我有很多byte []代表pdf.每个字节数组都需要在应用程序的开头加载,并在我的gui上显示为缩略图.到目前为止,我已设法使用以下方法将文件写入临时位置:
System.IO.Path.GetTempPath();
Run Code Online (Sandbox Code Playgroud)
然后使用这个路径我得到所有pdf文件,使用它们编写
System.IO.File.WriteAllBytes(fileName, arrayOfPdfs[i]);
Run Code Online (Sandbox Code Playgroud)
然后导航到该目录,获取所有pdf文件并将其转换为我的应用程序中的缩略图.
问题是我只想要我刚才放在临时位置的pdf,所以我怎么能存储pdf,甚至我还能在哪里存储它们所以我知道什么时候我把它们变成缩略图,文件我正在读的是我刚写的那些?这样我可以确定用户只查看与他们在我的系统上搜索相关的相关pdf.
谢谢.
假设我有一个配置了10秒(10k ms)间隔的Windows窗体计时器:
myTimer.Interval = 10000;
Run Code Online (Sandbox Code Playgroud)
我想启动它并Tick马上启动它:
myTimer.Start();
myTimer_Tick(null, null);
Run Code Online (Sandbox Code Playgroud)
最后一行有效,但是有更好或更合适的方式吗?
我为一个对象定义了两个属性"Name"和"ID",我将其用于具有BindingList数据源的ComboBox的DisplayMember和ValueMember.
我最近安装了Resharper来评估它.Resharper正在向我发出关于两个属性未使用的对象的警告.
示例代码:
BindingList<ClassSample> SampleList = new BindingList<ClassSample>();
// populate SampleList
cmbSampleSelector.DisplayMember = "Name";
cmdSampleSelector.ValueMember = "ID";
cmbSampleSelector.DataSource = SampleList;
private class ClassSample
{
private string _name;
private string _id;
public string Name // Resharper believes this property is unused
{
get { return _name; }
}
public string ID // Resharper believes this property is unused
{
get {return _id; }
}
public ClassSample(string Name, string ID)
{
_name = Name;
_id = ID;
}
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么或者Resharper对这种特殊用法一无所知?
当谈到using在C#中的语句(不要与混淆using 的指令是导入命名空间),Visual Studio中没有如果没有括号使用下面缩进单行代码.这是典型的"嵌套"使用如此SO问题中所示的语句.
我发现后面的后续语句using没有缩进,这与if语句的格式不同,我觉得很困惑:
// non-indented using statement
using (var myResource = new SomeIDisposableResource())
myResource.Indent(false);
// indented if statement
if (something == true)
IndentMe();
Run Code Online (Sandbox Code Playgroud)
有没有理由不缩进,或者只是偏好?
// indented using statement, but not the default VS formatting
using (var myResource = new SomeIDisposableResource())
myResource.Indent();
Run Code Online (Sandbox Code Playgroud)
编辑:
进一步测试显示我对某些VS格式化行为不正确.如果键入using语句:
using (var myResource = SomeIDisposableResource())
Run Code Online (Sandbox Code Playgroud)
...然后按Enter键,光标将与之对齐using.如果下一行也是using语句,它将继续对齐.如果不是,VS将在完成后缩进.因此,我的原始问题有些无效,因为除非您覆盖默认格式或使用不执行此操作的IDE,否则我的第一个示例实际上无法实现.
但是,值得知道的是,多个using语句最好被视为单个块,因为它们在技术上是一样的.缺少缩进仅适用于语句是using没有大括号的顺序语句; 当一个人习惯了,他们就不再那么寻常了.
一如既往地感谢所有那些为这些小编程细节提供见解和经验的人.
我有一个工具提示出现在鼠标悬停在图像上:
ToolTip tt = new ToolTip();
protected virtual void pictureBox_MouseHover(object sender, EventArgs e)
{
tt.InitialDelay = 0;
tt.SetToolTip(this.pictureBox, "Click 'LIVE ...");
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我的文字很长,工具提示消失得太快.如何让工具提示显示更长时间?