小编dym*_*oid的帖子

SimpleStub中的MockBehavior.Loose和MockBehavior.Strict有什么区别?

我是VS单元测试的新手,正在学习使用SampleStubFramework 将模拟模块添加到我的单元测试项目中。

现在我遇到了理解MockBehavior.Loose和解决问题的麻烦MockBehavior.Strict。我真正想知道的是这两个选择之间的区别?这种选择会对我的单元测试产生很大的影响吗?

.net c# unit-testing mocking uwp

3
推荐指数
1
解决办法
2292
查看次数

是否必须将空间分配给ProcessStartInfo?

我正在将C++代码移植到C#,我在C++代码中遇到了这个问题,

SHELLEXECUTEINFO shell;
memset(&shell, 0, sizeof(shell));
//the properties in shell are set
ShellExecuteEx(&shell);
Run Code Online (Sandbox Code Playgroud)

所以,现在我使用Process.Start(),并ProcessStartInfo为C#代码.ProcessStartInfo当我调用ProcessStartInfo构造函数时,是否必须为内存分配内存?只是为了满足我的好奇心,这种memset在C++ 中使用的方式是一种非托管语言的练习还是我理解错误的东西?

谢谢.

c# memory-management managed processstartinfo

2
推荐指数
1
解决办法
88
查看次数

为什么在提供数据有效负载时未收到 WM_COPYDATA 消息?

我有一个非常著名的使用(丑陋的)消息进行进程间数据交换的设置WM_COPYDATA。这不是我的决定,我必须在遗留应用程序中支持它。

const uint WM_COPYDATA = 0x004A;

[StructLayout(LayoutKind.Sequential)]
struct COPYDATASTRUCT
{
  public uint dwData;
  public int cbData;
  public IntPtr lpData;
}

[DllImport("user32.dll")]
static extern int SendMessage(IntPtr hwnd, uint msg, IntPtr wparam, ref COPYDATASTRUCT lparam);
Run Code Online (Sandbox Code Playgroud)

如果我只发送一个简单的结构,而不附加附加数据,它就可以正常工作:

COPYDATASTRUCT container;
container.dwData = 42;
container.cbData = 0;
container.lpData = IntPtr.Zero;
SendMessage(myHwnd, WM_COPYDATA, IntPtr.Zero, ref container);
Run Code Online (Sandbox Code Playgroud)

在接收方(外部 WinForms 应用程序),我收到此消息并且可以正确读取该dwData字段:

protected override void WndProc(ref Message m)
{
    if (m.Msg == WM_COPYDATA)
    {
        var container = (COPYDATASTRUCT)m.GetLParam(typeof(COPYDATASTRUCT));
        MessageBox.Show(container.dwData.ToString()); // 42
    }
    base.WndProc(ref m);
} …
Run Code Online (Sandbox Code Playgroud)

c# pinvoke windows-messages winforms wm-copydata

2
推荐指数
1
解决办法
2825
查看次数

如何从 WPF 用户控件获取托管 WinForm 的实例?

我有一个 WPF UserControl,它托管在 WPF 窗口或 Windows Forms 中Form。当用户按下“X”按钮关闭托管窗口/表单时,我想捕获此关闭事件并执行一些操作。

为此,我订阅了加载事件以UserControl获取托管窗口/表单实例并订阅其关闭事件。

它在 WPF 窗口中工作正常,但当我尝试对 执行相同操作时Form,出现错误并且无法继续。

WPFUsercontrol.xaml.cs

private void WpfUsercontrol_OnLoaded(object sender, RoutedEventArgs e)
{
    Window window = Window.GetWindow(this);
    if (window != null)
        window.Closing += window_closing;

    Form form = this.Parent as Form;    
    //Error: Cannot convert from System.Windows.DependencyObject to System.Windows.Forms.Form    
}
Run Code Online (Sandbox Code Playgroud)

如何实现Form与使用 WPF 窗口相同的关闭 a 的功能?

c# wpf winforms formclosing

2
推荐指数
1
解决办法
1299
查看次数

如何仅在 Visual Studio 中启用当前文件的断点?

例如,我正在调试一个包含多个源文件的项目,其中已经有断点。在调试过程中,我曾经从调试菜单( )禁用了所有断点Debug -> Disable All Breakpoints

但现在我只想启用我想要调试的特定源文件的断点。在 Visual Studio (2013) 中,如何做到这一点?

c# debugging breakpoints visual-studio-2013

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

仅在float [] samples数组的末尾删除或修剪零

我是C#的新手,我想知道是否有一个函数来删除浮点数组末尾的特定值(0)?

例如:

float[] samples = {0.0, 4.0, 2.5, ..., 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
Run Code Online (Sandbox Code Playgroud)

通话结束后,我想要我的样品:

samples == {0.0, 4.0, 2.5, ..., 2.0}
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助

c# arrays trim

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

C#卡路里计数器

我是编程新手,并且刚开始学习第一门课程,即编程基础知识,而在目前的家庭作业中,我遇到了一个我无法解决的问题。

问题是-“一袋饼干可容纳40个饼干。袋中的卡路里信息声称袋中有10份,每份等于300卡路里。创建一个应用程序,让用户输入自己或他或她的Cookie数量她实际上吃了,然后报告了所消耗的卡路里数量。”

我的表格: 我的表格

我在未调试的情况下运行时遇到的错误: 未经调试运行时出现的错误

//下面是我的代码

    using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Calorie_Counter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int cookies = int.Parse(textBox1.Text);

            int calories = (cookies * 75);

            textBox2.Text = calories.ToString();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# exception string-parsing

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

如何在C#中将以毫秒为单位的日期时间存储到DateTime对象中?

我在Dictionary中有一个DateTime对象中的键。

static Dictionary<DateTime, string> messageList = new Dictionary<DateTime, string>();
Run Code Online (Sandbox Code Playgroud)

我不想以毫秒为单位存储日期时间。

static Dictionary<DateTime, string> messageList = new Dictionary<DateTime, string>();
Run Code Online (Sandbox Code Playgroud)

我想将数据时间以01/01/2008 00:30:45.125格式存储为字典中的键。

c# datetime

0
推荐指数
1
解决办法
96
查看次数

将 C# 8.0 转换为 C# 7.0

我正要使用下面的 C# 代码。

await using (var producerClient = new EventHubProducerClient(ConnectionString, EventHubName))
{
    using EventDataBatch eventBatch = await producerClient.CreateBatchAsync();
    eventBatch.TryAdd(new EventData(Encoding.UTF8.GetBytes(eventData)));
    await producerClient.SendAsync(eventBatch);
}
Run Code Online (Sandbox Code Playgroud)

但是在构建服务器中这会失败,因为上面是 C# 8.0 代码并且构建服务器只支持 C# 7.0 代码。有人可以帮我将上面的代码从 C# 8.0 转换为 C# 7.0,因为我无法让它工作吗?

c# asynchronous using async-await c#-7.0

0
推荐指数
1
解决办法
315
查看次数