小编Eri*_*and的帖子

在运行时动态生成DLL程序集

目前我有一些动态生成的代码.换句话说,C#.cs文件是由程序动态创建的,目的是将此C#文件包含在另一个项目中.

挑战在于我想生成一个.DLL文件,而不是生成一个C#.cs文件,以便它可以被任何类型的.NET应用程序(不仅仅是C#)引用,因此更有用.

.net c# dll code-generation

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

xaml什么是"local:"?

什么是local:在XAML中,可以调用C#类中的哪些参数local:

在我看到的一些代码中,我看到了xmlns:local="clr-namespace:AskLocal".这是什么意思?

wpf xaml xml-namespaces

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

fopen是否创建了文件描述符?

查看手册页fopen我无法得到这个问题的明确答案.

FILE *fopen(const char *path, const char *mode);
Run Code Online (Sandbox Code Playgroud)

我理解fopen返回一个指向流的文件指针,但是作为副产品创建的文件描述符?我试图确保FD_CLOEXEC在每个创建文件描述符的实例上包含该标志.如果文件描述符实际上是在没有"fd"用作输入的情况下从fopen最佳使用方式创建的fnctl().

谢谢.

c unix fopen file-descriptor

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

WPF自定义datagrid列标题

我需要创建一个Custom dataGrid DataGridTextColumn,如下图所示:

草图

红色矩形是TextBox,用于在列内搜索.

到目前为止,我已经实现了这样的数据网格(简化版本):

        <DataGrid x:Name="CompassLogDataGrid"
              Grid.Row="1"
              Style="{DynamicResource ResourceKey=DataGridStyle}"
              IsTextSearchEnabled="True">

            <DataGrid.Columns>
                <DataGridTextColumn CellStyle="{StaticResource IdCell}"
                                x:Name="ID"
                                Header="ID"
                                Foreground="Black"
                                Binding="{Binding ID}"
                                DisplayIndex="0" />

                <DataGridTextColumn x:Name="DateGTC"
                                Header="Date"
                                Binding="{Binding DateString}"
                                CellStyle="{StaticResource DateGTCCell}" />
            </DataGrid.Columns

    </DataGrid
Run Code Online (Sandbox Code Playgroud)

我不知道如何创建这些textBoxes.任何线索都会欣赏它

c# wpf datagrid

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

如何在F#中创建结构的新实例?

我觉得这个真的很蠢,但我很难找到这方面的文档.

如果我声明一个这样的结构:

type BuildNumber = 
    struct
        val major : int
        val minor : int
        val build : int
        val revision : int
    end
Run Code Online (Sandbox Code Playgroud)

然后我如何创建该BuildNumber类型的新实例?

f#

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

防止在Pivot元素之间滑动

我知道之前已经问过这个问题,但从未对Windows Phone 8有过回答.

在Windows Phone 7中,可以isHitTestVisible = false在基本Pivot元素上设置以在滑动某些元素(如"滑块"和"文本框")时阻止PivotItem滚动.但是,在Windows Phone 8中,Pivot会在ManipulationStarted事件(甚至Touch对象的事件)触发之前滚动.这意味着无法通过在Windows Phone 7中监听某些控件上的ManipulationStart来阻止在Pivots之间滚动.

有没有办法禁用滚动某些元素,甚至屏幕的某些部分?

c# windows-phone-7 windows-phone-8

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

使用ContinueWith时如何捕获OperationCanceledException

我有一些代码,我将从.NET 4.5的可爱asyncawait关键字降级到.NET 4.0.我正在ContinueWith创建类似于await工作方式的延续.

基本上,我的旧代码是:

var tokenSource = newCancellationTokenSource();
var myTask = Task.Run(() =>
{
    return MyStaticClass.DoStuff(tokenSource.Token);
}, tokenSource.Token);
try
{
    var result = await myTask;
    DoStuffWith(result);
}
catch (OperationCanceledException)
{
    // Cancel gracefully.
}
Run Code Online (Sandbox Code Playgroud)

(正如人们所料,MyStaticClass.DoStuff(token)经常打电话token.ThrowIfCancellationRequested().)

我的新代码如下所示:

var tokenSource = new CancellationTokenSource();
try
{
    Task.Factory.StartNew(() =>
    {
        return MyStaticClass.DoStuff(tokenSource.Token);
    }, tokenSource.Token)
    .ContinueWith(task =>
    {
        var param = new object[1];
        param[0] = task.Result;
        // I need to use Invoke here …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous .net-4.0 async-await

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

Windows 上的串行输入缓冲区有多大?

我浏览了 MSDN 和整个互联网,但没有找到明确的答案。Win32 API 中串行通信的输入缓冲区有多大(以字节为单位)?

windows winapi msdn serial-port

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

在C#中实现ICollection.CopyTo:深层还是浅层副本?

我正在写一个实现的自定义类,IDictionary我不知道该怎么做CopyTo.是应该将每个元素复制到目标数组(浅层副本),还是应该复制/克隆每个元素,然后将它放在目标数组中(深层复制)?

c# clone copy interface-implementation

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

Button的DialogResult没有(重新)设置?

在我的Windows窗体应用程序中,我有一个子窗体,它由我的主窗体作为模态启动.子表单用作执行长时间运行任务的向导,并包含"取消"按钮.在设计器中,我将此"取消"按钮的DialogResult属性设置为DialogResult.Cancel.但是,如果用户拒绝按下"取消"按钮直到长操作完成,则"取消"按钮的文本变为"关闭".我想按钮的DialogResultDialogResult.None,如果发生这种情况.

不幸的是,设置似乎并不存在.为了维护响应式UI,长时间运行的任务在一个单独的运行中运行Task,然后在任务完成后的UI更新在一个ContinueWith块之后完成,这反过来用于Invoke执行UI工作.它看起来像这样:

Task.Factory.StartNew(() =>
{
    MyStaticClass.DoLotsOfWork(a, b, myCancellationToken);
    return MyStaticClass.TellMeAboutIt(a, c, myCancellationToken);
}, myCancellationToken)
.ContinueWith(task =>
{
    switch(task.Status)
    {
    case TaskStatus.RanToCompletion:
        Invoke((MethodInvoker)delegate
        {
            cancelButton.Text = "Close";
            cancelButton.DialogResult = DialogResult.None;
            // other UI-related stuff.
        }
    // Other cases here...
    }
});
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,文本设置为"关闭",没问题.在DialogResult 似乎改变:如果我穿行使用调试器,调试器告诉我的值已经改变.然而,当在关闭窗口(使用取消/关闭按钮)时,DialogResult返回由myWindow.ShowDialog()始终 DialogResult.Cancel.

这是一个错误吗?难道我做错了什么?一个人可以在运行DialogResult中以编程方式设置按钮吗?

c# multithreading winforms

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