从.Net 2.0泛型字典中获取密钥的值很容易:
Dictionary<int, string> greek = new Dictionary<int, string>();
greek.Add(1, "Alpha");
greek.Add(2, "Beta");
string secondGreek = greek[2]; // Beta
Run Code Online (Sandbox Code Playgroud)
但有没有一种简单的方法来获取价值的关键?
int[] betaKeys = greek.WhatDoIPutHere("Beta"); // expecting single 2
Run Code Online (Sandbox Code Playgroud) 我有一个C#Windows应用程序,如果用户将其移动到第二台显示器,我希望它能够显示在第二台显示器上.我需要保存主窗体的大小,位置和窗口状态 - 我已经处理过 - 但我还需要知道用户关闭应用程序时它所在的屏幕.
我正在使用Screen类来确定当前屏幕的大小,但我找不到任何关于如何确定运行应用程序的屏幕的内容.
编辑:感谢您的回复,大家好!我想确定窗口所在的监视器,以便我可以进行适当的边界检查,以防用户意外地将窗口放在查看区域之外或更改屏幕大小,使得窗体不再完全可见.
这个问题是关于如何读/写,分配和管理位图的像素数据.
下面是一个如何为像素数据分配字节数组(托管内存)并使用它创建位图的示例:
Size size = new Size(800, 600);
PixelFormat pxFormat = PixelFormat.Format8bppIndexed;
//Get the stride, in this case it will have the same length of the width.
//Because the image Pixel format is 1 Byte/pixel.
//Usually stride = "ByterPerPixel"*Width
Run Code Online (Sandbox Code Playgroud)
//但并非总是如此.更多信息在bobpowell.
int stride = GetStride(size.Width, pxFormat);
byte[] data = new byte[stride * size.Height];
GCHandle handle = GCHandle.Alloc(data, GCHandleType.Pinned);
Bitmap bmp = new Bitmap(size.Width, size.Height, stride,
pxFormat, handle.AddrOfPinnedObject());
//After doing your stuff, free the Bitmap and unpin the array.
bmp.Dispose(); …
Run Code Online (Sandbox Code Playgroud) 我在Visual Studio 2010中使用C#创建了一个Windows服务.我做了很多关于自动化安装过程的研究.有很多建议,但没有一个对我有用.我创建的Windows服务有很多依赖项,我希望客户端在安装过程中没有UI交互.我为此创建了一个安装项目,其中包含安装程序中的所有依赖项.
涉及的过程:
到目前为止我做了什么:
请记住powershell脚本
sc create "servicename" binpath="somepath"
Run Code Online (Sandbox Code Playgroud)
用于从项目目录安装服务而不是用于安装使用Setup Project创建的.msi文件这些是两个截然不同的东西.如果你不明白,请不要回答.
可能的解决方案:
现在我的问题是.如何将Windows服务安装程序推送到远程位置?如何创建自定义构建参数并使用msbuild扩展包或Exec Task并安装该服务?
我知道对于没有使用安装项目创建的(.MSI)安装服务的人来说,这听起来很愚蠢和恼人.但是我的要求是我试图在企业环境中解决几个星期.
我怎样才能比较两个日期的返回天数.例如:缺少X天的杯赛.看看我的代码.
NSDateFormatter *df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"d MMMM,yyyy"];
NSDate *date1 = [df dateFromString:@"11-05-2010"];
NSDate *date2 = [df dateFromString:@"11-06-2010"];
NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];
//int days = (int)interval / 30;
//int months = (interval - (months/30)) / 30;
NSString *timeDiff = [NSString stringWithFormat:@"%dMissing%d days of the Cup",date1,date2, fabs(interval)];
label.text = timeDiff; // output (Missing X days of the Cup)
Run Code Online (Sandbox Code Playgroud) 很多语言(可能都是这些语言)旨在使编写程序更容易.它们都有不同的领域,旨在简化这些领域的开发程序(C使开发低级程序更容易,Java使开发复杂的业务逻辑更容易,等等).为了以更容易,更自然,更不容易出错的方式编写和维护程序,可能会牺牲其他目的.
是否有任何专门用于验证源代码的语言 - 即静态分析 - 更容易?当然,为现代机器编写通用程序的能力也应该持续存在.
我正在使用Trace.Writeln()函数将C#中的程序执行的操作写入文件.但是文件变得太大了.如何在文件增长到1MB时截断它?
TextWriterTraceListener traceListener = new TextWriterTraceListener(File.AppendText("audit.txt"));
Trace.Listeners.Add(traceListener);
Trace.AutoFlush = true;
Run Code Online (Sandbox Code Playgroud)
应该添加到上面的块中
我正在从许多来源(MemoryMappedFiles 或 FileStream)读取数据。一个问题是,每次读取字节、int 或其他类型的调用都非常慢。因此,我想将一大块数据读入数组,并将其交给轻量级内存流,并读取其中的各个组件。
问题是.NET 的当前 MemorySrream 只允许在构造函数中使用数组,但我需要一个能够处理 Span 或 Memor 的 Stream。有一个 ReadOnlyMemoryStream 作为内部类深深埋藏在 .NET 源代码中。
有趣的是,虽然 ReadOnlyMemoryStream 比 MemoryStream 慢,但我认为它不会产生很大的差异。
有没有更好的实现方式?
我正在寻找适用于Windows 10的触摸屏友好文件选择器.在Windows 8和8.1中,我使用FileOpenPicker:
FileOpenPicker fileOpenPicker = new FileOpenPicker();
fileOpenPicker.FileTypeFilter.Add(".wma");
fileOpenPicker.FileTypeFilter.Add(".mp3");
fileOpenPicker.SuggestedStartLocation = PickerLocationId.VideosLibrary;
fileOpenPicker.ViewMode = PickerViewMode.List;
IReadOnlyList<StorageFile> files = await fileOpenPicker.PickMultipleFilesAsync();
Run Code Online (Sandbox Code Playgroud)
这产生了一个很好的界面(例子),但在Windows 10中,相同的代码显示与OpenFileDialog相同的界面(例子),这在触摸屏上很难使用.有谁知道如何在Windows 10中获得Windows 8/8.1样式的FileOpenPicker,或者知道另一种选择?
如果我想使用Microsoft PixelSense实现一个试点项目,我在哪里或谁要求测试硬件?
c# ×7
.net ×4
.net-core ×1
bitmap ×1
bitmapdata ×1
compare ×1
days ×1
file ×1
msbuild ×1
objective-c ×1
pixelsense ×1
screen ×1
truncate ×1
windows ×1
windows-10 ×1
windows-8 ×1
winforms ×1
wpf ×1
xaml ×1