小编bri*_*ght的帖子

NSTableView:检测鼠标单击以及行和列

我正在尝试检测何时在NSTableView中发生鼠标单击,以及何时单击,以确定单击的单元格的行和列.

到目前为止,我已尝试使用NSTableViewSelectionDidChangeNotification,但有两个问题:

  1. 它仅在选择更改时触发,而我希望每次鼠标单击,即使它在当前选定的行上.
  2. 调用我的委托时,NSTableView的clickedRow和clickedColumn属性都是-1.

这样做有更好(和更正确)的方法吗?

cocoa cell nstableview mouseclick-event swift

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

Mono C#编译器执行yield的错误?

此代码在if(false)语句中使用2.10.8 dmcs以及MonoTouch导致内部编译器错误.这知道吗?(这可能是一个错误报告,但我可能会做一些蹩脚的事情.)

using System;
using System.Collections;
class X
{
    static int Main()
    {
       foreach(var i in GetAll())
       {
       }

       return 0;
    }
    static IEnumerable GetAll()
    {
       yield return 1;
       if (false)
          yield return 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# mono xamarin.ios dmcs

12
推荐指数
0
解决办法
501
查看次数

XobotOS:为什么C#二叉树基准测试使用结构?

对于xobotos中声称的性能提升感到好奇,我查看了二叉树基准测试代码.

二叉树节点的Java版本是:

private static class TreeNode
{
    private TreeNode left, right;
    private int item;
}
Run Code Online (Sandbox Code Playgroud)

C#版本是:

struct TreeNode
{
  class Next
  {
    public TreeNode left, right;
  }

  private Next next;
  private int item;
}
Run Code Online (Sandbox Code Playgroud)

我想知道在这里使用struct的好处是什么,因为Next和Previous指针仍然封装在一个类中.

嗯,有一个叶子节点是纯值类型,因为它们不需要左右指针.在典型的二叉树中,一半节点是叶子,这意味着对象数量减少了50%.不过,所列出的业绩增长似乎要大得多.

问题:还有更多吗?

此外,由于我不会想到在C#中以这种方式定义树节点(感谢Xamarin!),其他数据结构可以从非显而易见的方式使用结构中获益吗?(尽管这有点偏离主题并且是开放式的.)

c# mono benchmarking xobotos

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

Roslyn的发布版本如何实现不可变树?

据我所知,Roslyn的预发布版本实现了不可变树,正如Eric Lippert撰写的这篇优秀博客文章所述.但是,该帖子的结尾是:

"成本是这个系统很复杂,如果"红色"外墙变大,可能会占用大量内存.我们目前正在做实验,看看我们是否可以在不损失优惠的情况下降低部分成本."

我想问一下发布版本的结果.我已经开始检查Roslyn 代码,但代码相当复杂.

我感兴趣的是关于上述成本的低级设计结果.

  1. 红色/绿色节点的单个编辑成本是多少?
  2. 对其他操作进行了哪些优化(例如删除,撤消)?

c# tree immutability roslyn

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

如何将普通 Xamarin.iOS 解决方案(无 Xamarin Forms)更新为 .net 6(无 MAUI)以在 iOS 和 Mac Catalyst 上运行?

我有一个 Xamarin.iOS 解决方案,其中包括一个库项目和一个可执行文件。该解决方案不使用 Xamarin Forms,即它是所谓的“Xamarin Native”解决方案。

我想将其升级到 .net 6 解决方案。不幸的是,我看到的所有示例和文档都只解释了如何将 Xamarin Forms 解决方案升级到使用 MAUI 的 .net 6 解决方案(这是 Xamarin Forms 的演变)。

所以:

  1. 如何将我的解决方案更新为 .net 6“本机”iOS 解决方案?
  2. 由于 .net 6 还支持 Mac Catalyst,因此如何将我的解决方案配置为除了 iOS 之外还可以在 Mac Catalyst 上运行?

.net xamarin xamarin.forms .net-6.0 .net-maui

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

有没有真正的SharpKit应用程序?

我们正在评估SharpKit是一种编写AJAX应用程序的可能技术,因为我们已经有很多C#代码,我们认为这些代码在转换为JavaScript之后会很好用.

我们知道ScriptSharp和其他相关技术 - 有很多关于它们的Stack Overflow线程,这个问题仅针对SharpKit.

我们有几个问题,因此正在寻找SharpKit的真实世界经验.特别是:

  1. 使用SharpKit构建的一个应用程序是coderun IDE.虽然令人印象深刻,但它只是一个应用程序,而且是一个封闭源代码.
  2. 在SharpKit上建立的应用程序大小的示例项目显然没有.
  3. SharpKit文档非常差 - 没有深入的概念概述或教程,只有几个5分钟的视频和一个类库.(工具包供应商何时会了解生成的类引用不是用户指南?)
  4. 没有论坛 - 所以我们无法确定这个工具包实际使用了多少.据我们所知,这是一个由三个人写的几乎没有支持的项目.您的支持经历是什么样的?
  5. 没有电话联系或支持 - 这再次引发了关于支持的红旗.

请不要回复ScriptSharp或其他信息 - 我们只是想在这里评估SharpKit.

javascript c# translation

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

如何在C#winforms应用程序中粘贴剪贴板中的透明图像?

注意:这个问题是关于从剪贴板粘贴,而不是复制到剪贴板.有几篇关于复制到剪贴板的帖子,但找不到解决这个问题的帖子.

如何将具有透明度的图像(例如此图像)粘贴到winforms应用程序中并保持透明度?

我尝试过使用System.Windows.Forms.GetImage(),但会产生一个黑色背景的位图.

我正在从谷歌浏览器复制此图像,谷歌浏览器支持多种剪贴板格式,包括DeviceIndependentBitmapFormat17.

clipboard image transparent paste winforms

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

将msbuild中的编译项移动到单独的文件中?

这可能是常见问题解答,但即使经过大量搜索,我们也无法找到解决方案.

我们有许多msbuild文件,它们都在同一组源文件上运行.(它并不是特别相关,但它们可以编译为完全不同的平台.)为了使这些管理变得更简单,我们希望将<Compile>源文件名移动到一个单独的文件中,并从所有msbuild文件中引用它们.

我们尝试切割<ItemGroup>包含这些<Compile>项目并将其粘贴到一个新文件中,然后将其包围

<Project DefaultTargets="Build" ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

然后从原始引用该文件

<Import Project="Common.files.csproj" />

但这不起作用 - 解决方案打开(因为我们破解了默认配置,因此发出警告),但解决方案资源管理器中没有任何项目.

我们做错了什么?

msbuild visual-studio

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

在MonoMac应用程序中包含自定义dll和dylib

背景:我的MonoMac应用程序使用sqlite3.0.8.6.dylib的自定义构建.

我需要确切的步骤让MyApp.app使用这个dylib.

以下是我采取的一些步骤:

  1. 将dylib复制到MyApp.app/Contents/SharedSupport.(相关问题:这是第三方dylibs的首选位置还是MyApp.app/Contents/Frameworks首选?)

  2. 更改了库的已安装名称,以使其与新位置匹配.

    MyApp.app/Contents/SharedSupport> otool -L libsqlite3.0.8.6.dylib 
    libsqlite3.0.8.6.dylib:
        @executable_path/../SharedSupport/libsqlite3.0.8.6.dylib (compatibility version 9.0.0, current version 9.6.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
    
    Run Code Online (Sandbox Code Playgroud)

问题

  1. MyApp.app/Contents/MacOS/MyApp不直接引用dylib,因此我无法使用install_name_tool指向新的库位置.我相信该库是由System.Data.Sqlite.dll引用的.
  2. 我想在启动器脚本中覆盖DYLD_FALLBACK_LIBRARY_PATH, MonoMac现在使用二进制启动器(MyApp.app/Contents/MacOS/MyApp),而不是脚本,所以我在那里运气不好.

MonoMac众神会帮助解决一个简单的解决方案吗?我花了几个月的时间,一直在努力让它发挥作用.

请提供确切的步骤 - 这个问题与细节有关.

mono bundle dylib monomac

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

Visual Studio Code (VSCode) 如何根据当前工作区推荐安装扩展?

VSCode 根据当前加载和/或编辑的文件推荐语言和相关扩展,例如 C# 扩展。

它似乎对我的需求有相当深入的了解,所以我很好奇这些建议是如何发挥作用的。

这是扩展可以动态影响的东西(可能在云中的清单中),还是 VSCode 使用一组静态规则(例如文件类型)来匹配潜在的扩展?

我查看了Extension API,但找不到任何相关信息。

visual-studio-code vscode-extensions

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