小编Zen*_*ulz的帖子

编组 - 它是什么以及我们为什么需要它?

什么是编组,我们为什么需要它?

我发现很难相信我不能通过int电线从C#发送到C并且必须对其进行编组.为什么C#只能通过一个起始和终止信号发送32位,告诉C代码它已经收到了int

如果有任何好的教程或网站关于我们为什么需要编组以及如何使用它,那将是很好的.

.net c# unmanaged managed marshalling

87
推荐指数
5
解决办法
5万
查看次数

withFilter而不是filter

在使用map,flatmap等函数后,使用withFilter而不是过滤器总是更高效吗?

为什么只支持map,flatmap和foreach?(预期的功能如forall/exists)

scala lazy-evaluation for-comprehension scala-collections

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

继承默认的ComboBox以更改边框颜色或禁用它

我正在WinForms项目中工作.

我在Windows中激活了一个黑暗的主题,当它聚焦时,这是一个默认的组合框:

在此输入图像描述

这就是它没有焦点的时候:

在此输入图像描述

当控件失去焦点时,会出现一个可怕且疯狂的白色边框,我希望在项目中不禁用XP样式的情况下避免这种情况.

我知道也许唯一的方法是继承控件来制作我自己的,问题是我不知道我需要用控件做什么,也许更改setstyle属性或者我不知道.

.net c# vb.net user-controls winforms

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

[T]和&[T]之间的混淆

我目前正在迷茫[T]&[T]在生锈。让我们从我所知道的开始:

  • [T; n] 是n个元素的数组,
  • &[T; n] 是指向具有n个元素的数组的指针,
  • [T]没有大小,并指向元素序列T,而
  • &[T]是大小粗的指针,指向一系列元素T

我的困惑从两个项目的命名约定开始。从Rust文档中,他们提供了以下示例:

let a: [i32; 5] = [1, 2, 3, 4, 5]; // An array of type [T, n]
let slice: &[i32] = &a[1..3]; // A slice of type &[T]
Run Code Online (Sandbox Code Playgroud)

和状态

该切片的类型为&[i32]。

因此,我假设&[T]称为切片。该商品的名字是什么[T]?到底有[T]什么用?您不能将其嵌入到结构中(未调整大小),出于相同的原因,也不能在参数中采用此类型。我不知道它的实际用法。

谢谢!

arrays slice rust

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

EntityFramework 6 RC1包含在多对多属性中失败

我在Agents和AgentGroups之间有多对多的关系(psuedocode,缩写).

public class Agent { 
    public virtual List<AgentGroup> AgentGroups { get; set; } 
}

public class AgentGroup { 
    public virtual List<Agent> Agents { get; set; } 
}
Run Code Online (Sandbox Code Playgroud)

在代码中的某个时刻,我想获取所有AgentGroup,并且我想为每个组预取/包含代理.我想预先填补剂的AgentGroups集合.这适用于EF 6测试版,但不再适用于EF 6 rc1:

List<AgentGroup> allGroups = context.AgentGroups.Include("Agents").Include("Agents.AgentGroups").ToList();
Run Code Online (Sandbox Code Playgroud)

我得到的错误信息是

无效的对象名称'dbo.AgentAgentGroups'.

事实上,没有一张桌子AgentAgentGroups,桌子就是dbo.AgentGroupAgents.有关让这个再次起作用的想法吗?

我目前没有注释,我没有使用流畅的API,它严格地说是默认代码的第一个约定.

c# entity-framework entity-framework-6

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

64 位 Windows 是否可以通过 7FFF'FFFF'FFFF 分配虚拟内存?

语境

我正在升级一个 .NET 库以支持 64 位。该库直接在 Windows 上的其他进程的内存中执行各种操作。我必须在两种类型IntPtr(最大正值 7FFF'FFFF'FFFF'FFFF)或UIntPtr(最大正值 FFFF'FFFF'FFFF'FFFF)之间进行选择来处理我的内存指针。网上有很多关于这两者的信息。IntPtr似乎是事实上的约定选择,因为它符合 CLS 并且大多数 .NET API 都依赖于它(参考Marshal来自InteropServices)。

问题

我决定打开一个 64 位进程并检查分配的内存区域,以及进程中加载​​的模块,以查看使用UIntPtr(addresses > 7FFF'FFFF'FFFF'FFFF)支持无符号指针是否有价值。如下面的屏幕截图所示,似乎内存地址不会加载符号,也不会分配超过 7FFF'FFFF'FFFF 的内存。这样做有什么具体原因吗?在某些情况下,Windows 可以根据该值分配内存区域吗?

作弊引擎(64 位)上的内存分配

c# windows x86-64 internals virtual-memory

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

比较 RefCell&lt;T&gt; 中包含的值

我有一个结构体,其字段定义如下:

log_str: RefCell<String>
Run Code Online (Sandbox Code Playgroud)

我在现场进行了各种呼叫borrow_mut()push_str(.)最后,我使用以下方法评估其价值:

assert_eq!(os.log_str.borrow(), "<expected value>");
Run Code Online (Sandbox Code Playgroud)

尽管如此,断言行还是会引发编译时错误,并显示以下消息:

错误[E0369]:二进制运算==不能应用于类型std::cell::Ref<'_, std::string::String>

我明白为什么会发生错误,因为编译器甚至提示:

std::cmp::PartialEq可能缺少以下实现std::cell::Ref<'_, std::string::String>

我的问题是:我应该如何比较 a 中包含的值RefCell<T>(通常在这种情况下,将包含的字符串与预期值进行比较)。

谢谢 !

rust interior-mutability

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

如何按创建日期列出文件

我有ASP.NET(C#)4.0.

我的代码是这样的:

public IEnumerable<string> GetFiles(string searchPatternExpression)
{
    string path = @"D:\xxx\";
    SearchOption searchOption = SearchOption.TopDirectoryOnly;
    Regex reSearchPattern = new Regex(searchPatternExpression);
    return Directory
        .EnumerateFiles(path, "*", searchOption)
        .Where(file => reSearchPattern.IsMatch(Path.GetFileName(file)))
        .OrderBy(file => file);
}
Run Code Online (Sandbox Code Playgroud)

如何按文件的创建日期订购?

c# directory asp.net-mvc file

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

使用异步/等待模式执行服务器端调用(错误:TaskCanceledException)

我正在使用 WebAPI 技术对我的 Web API 执行 AJAX 调用。

处理该请求的方法如下:

[Route("RenderNotificationsPopup")]
[HttpGet]
public async Task<string> RenderNotificationsPopup(bool responsive = false)
{
    return await GetContentAsync(string.Format("RenderNotificationsPopup?responsive={0}", responsive ? 1 : 0));
}
Run Code Online (Sandbox Code Playgroud)

此方法调用GetContentAsync使用类执行服务器端调用HttpClient

private async Task<string> GetContentAsync(string urlSuffix)
{
        using (var client = new HttpClient())
        {
            return await client.GetStringAsync(string.Format(
                "{0}/Header/{1}",
                ConfigurationManager.AppSettings["GatewaysHttpRoot"],
                urlSuffix));
        }
}
Run Code Online (Sandbox Code Playgroud)

一切正常,除非用户在 AJAX 查询等待来自 WebApi 的响应时关闭页面。在这种情况下,我收到此错误:

消息:System.Threading.Tasks.TaskCanceledException:任务被取消。在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 System.Runtime.CompilerServices.TaskAwaiter1.GetResult() at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext() — End of stack trace from previous location where exception …

.net c# asynchronous asp.net-web-api asp.net-web-api2

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