小编Dou*_*rch的帖子

获得通用词典的价值关键?

从.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)

.net c#

119
推荐指数
4
解决办法
11万
查看次数

如何确定运行.NET Windows Forms程序的监视器?

我有一个C#Windows应用程序,如果用户将其移动到第二台显示器,我希望它能够显示在第二台显示器上.我需要保存主窗体的大小,位置和窗口状态 - 我已经处理过 - 但我还需要知道用户关闭应用程序时它所在的屏幕.

我正在使用Screen类来确定当前屏幕的大小,但我找不到任何关于如何确定运行应用程序的屏幕的内容.

编辑:感谢您的回复,大家好!我想确定窗口所在的监视器,以便我可以进行适当的边界检查,以防用户意外地将窗口放在查看区域之外或更改屏幕大小,使得窗体不再完全可见.

.net c# windows screen winforms

44
推荐指数
4
解决办法
4万
查看次数

从像素数据的字节数组创建位图

这个问题是关于如何读/写,分配和管理位图的像素数据.

下面是一个如何为像素数据分配字节数组(托管内存)并使用它创建位图的示例:

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)

c# bitmap bitmapdata

38
推荐指数
3
解决办法
7万
查看次数

自动执行Windows服务部署的最佳方法是什么?

我在Visual Studio 2010中使用C#创建了一个Windows服务.我做了很多关于自动化安装过程的研究.有很多建议,但没有一个对我有用.我创建的Windows服务有很多依赖项,我希望客户端在安装过程中没有UI交互.我为此创建了一个安装项目,其中包含安装程序中的所有依赖项.

涉及的过程:

  • 为Windows服务创建一个构建
  • 将安装文件(.msi)推送到远程位置
  • 调用.msi并静默安装服务,无需用户交互.

到目前为止我做了什么:

  • 创建了一个powershell脚本,用于将文件推送到远程位置
  • 执行powershell脚本并安装该服务

请记住powershell脚本

sc create "servicename" binpath="somepath"
Run Code Online (Sandbox Code Playgroud)

用于从项目目录安装服务而不是用于安装使用Setup Project创建的.msi文件这些是两个截然不同的东西.如果你不明白,请不要回答.

可能的解决方案:

现在我的问题是.如何将Windows服务安装程序推送到远程位置?如何创建自定义构建参数并使用msbuild扩展包或Exec Task并安装该服务?

我知道对于没有使用安装项目创建的(.MSI)安装服务的人来说,这听起来很愚蠢和恼人.但是我的要求是我试图在企业环境中解决几个星期.

c# msbuild build-automation windows-services

25
推荐指数
1
解决办法
1万
查看次数

如何比较两个日期,返回几天

我怎样才能比较两个日期的返回天数.例如:缺少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)

compare objective-c days

22
推荐指数
1
解决办法
6733
查看次数

专门设计用于简化静态验证的语言

很多语言(可能都是这些语言)旨在使编写程序更容易.它们都有不同的领域,旨在简化这些领域的开发程序(C使开发低级程序更容易,Java使开发复杂的业务逻辑更容易,等等).为了以更容易,更自然,更不容易出错的方式编写和维护程序,可能会牺牲其他目的.

是否有任何专门用于验证源代码的语言 - 即静态分析 - 更容易?当然,为现代机器编写通用程序的能力也应该持续存在.

programming-languages static-analysis

17
推荐指数
1
解决办法
585
查看次数

如何在c#中截断文件?

我正在使用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)

应该添加到上面的块中

.net c# truncate file

13
推荐指数
4
解决办法
2万
查看次数

是否有接受 Span&lt;T&gt; 或 Memory&lt;T&gt; 的 MemoryStream?

我正在从许多来源(MemoryMappedFiles 或 FileStream)读取数据。一个问题是,每次读取字节、int 或其他类型的调用都非常慢。因此,我想将一大块数据读入数组,并将其交给轻量级内存流,并读取其中的各个组件。

问题是.NET 的当前 MemorySrream 只允许在构造函数中使用数组,但我需要一个能够处理 Span 或 Memor 的 Stream。有一个 ReadOnlyMemoryStream 作为内部类深深埋藏在 .NET 源代码中。

有趣的是,虽然 ReadOnlyMemoryStream 比 MemoryStream 慢,但我认为它不会产生很大的差异。

有没有更好的实现方式?

.net c# .net-core

13
推荐指数
2
解决办法
7778
查看次数

Windows 10中的触摸屏友好文件选择器

我正在寻找适用于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,或者知道另一种选择?

c# xaml windows-8 fileopenpicker windows-10

12
推荐指数
1
解决办法
886
查看次数

如何开始使用Microsoft PixelSense

如果我想使用Microsoft PixelSense实现一个试点项目,我在哪里或谁要求测试硬件?

wpf pixelsense

11
推荐指数
1
解决办法
1382
查看次数