C#异步操作

事实上,我很难理解BeginInvoke()和EndInvoke()对。 class AsynchronousDemo { public delegate void DemoDelegate(); static void Main() { DemoDelegate d = PrintA; IAsyncResult AResult = d.BeginInvoke(Callback,null); d.EndInvoke(AResult); Console.ReadKey(true); } static void PrintA() { Console.WriteLine(“….Method in Print A Running ….”); Thread.Sleep(4000); Console.WriteLine(“….Method in Print A Completed…”); } static void Callback(IAsyncResult ar) { Console.WriteLine(“I will be finished after method A completes its execution”); […]

在C#中将ulong映射为long?

我试图将ulong映射到long(反之亦然),并将uint映射到int(反之亦然),如下所示 – 以便将值保存在带有签名类型的MS-SQL数据库中整数和大整数。 我这样做是因为我必须检查(在数据库中)一个数字(uint,ulong)是否在一堆uint / ulong范围内的哪个范围内(IPs-v4&v6;实际上ulong实际上是由uint128组成的两个ulongs)。 是否有更有效的方法来实现这一点,然后我在这里的代码: public static ulong SignedLongToUnsignedLong(long signedLongValue) { ulong backConverted = 0; // map ulong to long [ 9223372036854775808 = abs(long.MinValue) ] if (signedLongValue < 0) { // Cannot take abs from MinValue backConverted = (ulong)System.Math.Abs(signedLongValue – 1); backConverted = 9223372036854775808 – backConverted – 1; } else { backConverted = […]

已经包含了一个定义

我有一个名为Assign and的类 private int SeatNumber; public Assign(int SeatNum) { SeatNumber = SeatNum; } public int SeatNumber { get { return SeatNumber; } set { SeatNumber = value; } } 我不知道为什么我收到以下错误 类型’WindowsFormsApplication1.Assign’已包含’SeatNumber’的定义 怎么了?

c#enums:他们可以使用java enums等成员和函数吗?

在java中,可以给枚举一个构造函数以及成员变量和函数。 我想知道在c#enums中是否有可能这样的事情。 如果是这样,怎么样? 非常感谢!

为什么集合初始化程序与仅使用getter的属性一起工作?

这对我来说是非常不可预测的代码结果。 我没想到这段代码会产生这样的结果。 所以,我读了Jeffrey Richter的书(clr ia c#),这个代码有一个例子。 internal class ClassRoom { private List _students = new List(); public List Students { get { return _students; } } } ClassRoom classRoom = new ClassRoom { Students = {“Mike”, “Johny”, “Vlad”, “Stas”} }; foreach (var some in classRoom.Students) { Console.WriteLine(some); } 并且,正如你们中的一些人可以建议我们可以在控制台中看到四个名字。 所以,我的问题是: 我们如何得到我们的名字,如果他们要进入学生和分别在_学生中,因为学生不存在而没有被分配。 __________EDIT_1_______________ 我读了你的答案,谢谢你们。 但是,你知道,这是一种误解……我真的无法弄明白。 当我初始化学生时 […]

避免在C#winform的键盘快捷方式上发出警报

我正在使用Visual Studio 2012在C#中创建Winform应用程序的键盘快捷方式。我的快捷方式非常完美。 但它会发出恼人的哔哔声。 我添加了e.Handled = true; 和e.SuppressKeyPress = true; 根据许multithreading。 但它不起作用,我的winform卡住了。 我怎么能避免这个? private void textBoxSearch_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Down) { do stuff } else if (e.KeyCode == Keys.Enter) { //do stuff } e.Handled = true; e.SuppressKeyPress = true; } 我也需要一个解决方案。 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if […]

如何基于Func 将IObservable 窗口/缓冲到块中

给出一个类: class Foo { DateTime Timestamp {get; set;} } …和一个IObservable ,保证单调增加 Timestamp s,如何根据这些Timestamp s生成一个嵌入到列表中的IObservable<IList> ? 即每个IList应该有五秒钟的事件,或者其他什么。 我知道我可以使用带有TimeSpan重载的Buffer ,但我需要花时间从事件本身,而不是挂钟。 (除非有一个聪明的方法在这里提供一个IScheduler ,它使用IObservable本身作为IScheduler的来源?) 如果我尝试使用Observable.Buffer(this IObservable source, IObservable bufferBoundaries)重载如下: IObservable foos = //…; var pub = foos.Publish(); var windows = pub.Select(x => new DateTime( x.Ticks – x.Ticks % TimeSpan.FromSeconds(5).Ticks)).DistinctUntilChanged(); pub.Buffer(windows).Subscribe(x => t.Dump())); // linqpad pub.Connect(); …然后IList实例包含导致窗口关闭的项目 ,但我真的希望这个项目进入下一个窗口/缓冲区。 例如,使用时间戳[0, 1, […]

使用Response.TransmitFile使物理文件无法正常工作

我正在尝试使用Response.TransmitFile()来提示下载。 我已经阅读了关于这个问题的一些post,并根据Rick Strahl的博客http://www.west-wind.com/weblog/posts/76293.aspx找到了我的方法。 唯一的区别(我可以告诉)是我的目标是虚拟目录之外的物理文件。 这个代码是在ajaxified radgrid中调用的……我想知道response.transmitfile是否不适用于ajax调用? 这是我的代码片段: // Get the physical Path of the file string docFilePath = (string)args.AttachmentKeyValues[“DocFilePath”]; // Create New instance of FileInfo class to get the properties of the file being downloaded FileInfo file = new FileInfo(docFilePath); // Checking if file exists if (file.Exists) { Response.ClearContent(); Response.AddHeader(“Content-Disposition”, “attachment; filename=” + file.Name); Response.AddHeader(“Content-Length”, […]

以cm C为单位调整图像大小#

我要求要求10 X 6,88 cm的图像。 我知道我不能简单地从cm转换为像素,导致一个像素大小取决于用户的显示分辨率。 我想知道是否有办法调整图像大小以厘米为单位。 (我还需要保留图片扩展名。例如:无法将其转换为pdf或其他扩展名)

在C#命令行应用程序中包含并执行EXE

所以我找到了一个很棒的小EXE命令行应用程序(我们称之为program.exe),它输出了一些我想用C#操作的数据。 我想知道是否有办法将program.exe“打包”到我的visual studio项目文件中,这样我就可以将编译好的应用程序交给同事,而不必将它们发送给program.exe。 任何帮助表示赞赏。