小编gre*_*man的帖子

Scala中的方法命名约定 - 可变而不是版本?

这个例子只是为了表明这一点.

假设我使用矩阵库,但缺乏一些功能,让我们说矩阵中的每个元素加倍对我来说是至关重要的,我决定编写一个方法doubleIt.但是,我可以写这个方法的2个版本

  1. 可变 - doubleItInPlace
  2. 不可变 - doubleItByCreatingNewOne

这有点冗长,因此可以考虑命名约定,添加可变版本_!后缀,或者在其前面添加单词"mut".

是否有任何确定的命名约定来实现这种差异?

scala naming-conventions method-names

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

Scalala是否提供了将矢量插入矩阵的简单方法?

我在所有可用的运算符中有点迷失 - 所以有没有简单的方法将整行/列(向量)插入矩阵?

我开始考虑创建一个矢量,将其转换为数组,将矩阵转换为数组,并基于这样的组合数组创建新矩阵,但它看起来比听起来更加丑陋.

scala vector matrix scalala

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

合并触发是否以相反的顺序访问内存?

假设我有几个线程,他们访问地址A + 0,A + 4,A + 8,A + 12(每个访问=下一个线程)的内存.这种访问是合并的,对吗?

但是,如果我以相反的顺序访问相同的内存,则意味着:

thread 0 -> A+12
thread 1 -> A+8
thread 2 -> A+4
thread 3 -> A+0
Run Code Online (Sandbox Code Playgroud)

这里的合并也会触发吗?

memory cuda coalesce

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

什么时候填充共享内存真的需要?

我对来自NVidia的2份文件感到困惑."CUDA最佳实践"描述了共享存储器在存储体中组织,并且通常在32位模式下,每4个字节是一个存储体(这就是我所理解的).但是,"使用CUDA进行并行前缀求和(扫描)"(此处提供:http://http.developer.nvidia.com/GPUGems3/gpugems3_ch39.html)详细说明了由于存储库冲突,应如何在扫描算法中添加填充.

对我来说问题是,这个算法的基本类型是float,它的大小是4个字节.因此,每个浮动都是银行,没有银行冲突.

所以我的理解是正确的 - 即如果你使用4*N字节类型,你不必担心银行冲突,因为根据定义,没有?如果不是,我应该如何理解它(何时使用填充)?

cuda shared-memory

3
推荐指数
2
解决办法
2421
查看次数

如何将C#方法作为回调传递给CLI/C++函数?

我在C++/CLI中有这样的方法:

void Foo(OnEngineCloseCallback callback);
Run Code Online (Sandbox Code Playgroud)

有这样的回调定义:

typedef void (*OnEngineCloseCallback)( int, String ^ errorMessage);
Run Code Online (Sandbox Code Playgroud)

C++/CLI编译.C#代码如下所示:

static void onCallback( int code, String errorMessage)
{
    System.Diagnostics.Debug.WriteLine(errorMessage);
}
Run Code Online (Sandbox Code Playgroud)

和电话:

Foo(onCallback); // error
Run Code Online (Sandbox Code Playgroud)

"Foo不受语言支持"(错误:CS0570).

那么如何将我的回调传递给CLI/C++呢?

c# c++-cli callback

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

Ruby如何区分VALUE与值和指针?

对于值,如true,nil或小的整数,红宝石做优化.它不是将VALUE指针用作指针,而是直接用于VALUE存储数据.

我想知道Ruby如何在这些用途之间产生影响:

def foo(x)
  ...
Run Code Online (Sandbox Code Playgroud)

x此相关联VALUE.从低级别来看,它们只是一个数字.如何判断某个数字是否是指向对象的指针?所有我想到的是限制指针将MSB设置为0,并将MSB的直接值设置为1.但这只是我的猜测.它是如何在Ruby中完成的?

ruby pointers

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

谁和什么时候应该处理一个意图?

我注意到 Xamarin现在IntentIDisposable如此,我想知道处理它的正确方法是什么。假设我创建并发送它,在某些活动中我收到它并且......是否可以立即处理它?

我在问什么是正确的(作为指导)方法。

android idisposable xamarin

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

C# 8.0 中是否有针对非空的“检查并获取”运算符?

至于检查类型,我们有一个运算符,它可以同时有效地执行两件事:

if (GetObject() is DateTimeOffset dto)
{
   // use dto here
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中不仅dto是特定类型DateTimeOffset,而且该值是本地的并且被完全评估。

那么,C# 8.0 是否提供了类似的运算符来检查非空值?

if (GetPossibleNull() is not null x)
{
  // x is local, evaluated and guaranteed to be not-null
}
Run Code Online (Sandbox Code Playgroud)

c# nullable c#-8.0

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

如何在 Visual Studio 中禁用保存/修改的标记?

例如,VS2022 显示绿色垂直线(行号旁边)作为已保存更改的指示符。如何禁用/隐藏这些标记?

settings visual-studio-2022

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

如何在C#代码中嵌入文件的内容?

问题

我有一个包含此类文本的文件(没有别的)

2010-10-05

我想将此文件(内容)嵌入到C#代码中,因此我可以将此文本分配给常量(字符串MyDate),然后使用此常量.

背景

我试图实现的是保持程序的相关信息 - 无论是在网站上还是在程序内.

解决方案必须是:

  • 死得很简单
  • 自动
  • 平滑

我想到的最简单的,就是保持文件"版本"与版本(实际发布日期,因为它更有意义恕我直言),这样的文件可以在网站上显示没有问题(PHP).我想我管理写的.bat文件很小,可以在每次构建时自动生成这样的文件.

但是如何在C#代码中使用它(嵌入)?

我想要实现这个或替代解决方案,但不比这个更复杂.

解决方法

我已经知道了几个解决方法,比如:

  • 不仅可以创建具有日期的文件,还可以创建可以直接编译的小型C#代码
  • 在安装程序中包含此文件,并在安装后读取它,以获取版本信息

但是我也不觉得"干净".我需要更顺畅的东西:-)

背景的背景

我的程序一方面应该通知用户"嘿,有更新版本的程序",另一方面当浏览网页时,应该在页面上显示有关发布日期的信息.

事实

  • 版本:构建日期,也是发布日期
  • 网站:Linux,HTML和PHP
  • 程序:VS 2010,C#4.0,单个exe
  • 安装程序:高级安装程序

编辑 - 解决方案

我试图完全避免这个问题,并依赖文件的时间戳 - 它可以工作,因为当你在午夜之前构建exe并在之后创建安装包时,只有一个弱点.但是,将文件上传到ftp服务器这样的计划 - 你必须确保ftp服务器支持时间戳修改,你不能使用SFTP协议.

所以,我最终创建了"版本"文件而没有嵌入它(因为我不知道怎么做) - 我在网站上用PHP脚本和执行时用C#代码读取内容.

预先感谢您的帮助.

c# deployment

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