小编Mag*_*ron的帖子

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

为什么要在C#中使用"in"参数修饰符?

所以,我(我想)理解in参数修饰符的作用.但它的作用似乎是多余的.

通常,我认为使用a的唯一原因ref是修改调用变量,这是明确禁止的in.因此,通过in引用传递在逻辑上等同于传递值.

是否有某种性能优势?我认为,在事物的后端,ref参数必须至少复制变量的物理地址,该地址应与任何典型的对象引用相同.

那么,那么只是在更大的结构中的优势,还是有一些幕后编译器优化使其在其他地方具有吸引力?如果是后者,为什么我不应该把每个参数都做成in

c# c#-7.2

54
推荐指数
3
解决办法
5815
查看次数

是否为C#实现了任何图形数据结构

我试图找到一个图形数据结构,以便在C#中重用,但没有任何成功.当然,我可以从数据结构书中借鉴,但我希望它更具商业实用性(?)如果您能告诉我实现图表的最佳方法,我将不胜感激.谢谢

.net c# graph-theory data-structures

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

需要理解为什么 string.StartsWith() 应该是 false 时却是 true

所以我有通过 ftp 下载的这个文件。该文件只是我工作的公司系统的配置文件。下载文件后,我打开文件并处理文件。文件处理的一部分是检查一行是否以 Unicode 字符开头\u001a

这就是我感到困惑的地方,因为.StartsWith("\u001a")总是如此true,但我不明白为什么。如果我在 Notepad++ 或十六进制编辑器中查看该文件,我只是看不到该文件。

所以我在这里缺少一些东西。

这是一个最小的例子(fiddle):

// prints True in .NET 5
Console.WriteLine("Hello".StartsWith("\u001a"));
Run Code Online (Sandbox Code Playgroud)

c# string .net-5

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

Excel VBA:如果ActiveCell像"*string*"那样选择Case

我正在处理一个宏,它接受当前值ActiveCell并根据选择的情况更改该值.

但是,我无法确定是否ActiveCell包含通配符字符串.我不确定我的语法是否正确.如何让我的选择案例进行比较?

Select Case ActiveCell.Value

    Case ActiveCell.Value Like "*string*"
        ActiveCell.Value = "contains string"

End Select
Run Code Online (Sandbox Code Playgroud)

excel vba wildcard select-case vb-like-operator

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

如何在Visual Studio Code for Unity函数名称中获取智能感知?

我正在关注有关Unity的教程,并且看到讲师在编写方法名称时具有智识。

但是我对类和变量只有智能感知,我的意思是像Rigidbody这样的Unity类和我自己的变量。

在此处输入图片说明

我也读过: 自动补全在Visual Studio中不起作用

如何在Visual Studio 2017中为Unity启用智能感知

c# intellisense unity-game-engine visual-studio-code

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

使用 S7netplus 在 C# 中读取西门子 PLC s7 字符串

我在使用 S7netplus 读取西门子 PLC S7 1500 的 DB 中的数据时遇到问题。

情况:

  • 我正在运行一个 C# 应用程序。
  • 我在PLC上连接得很好。
  • 我可以读取Boolean、UInt、UShot、Bytes等数据

但我不知道如何读取字符串数据(见下图)

PLC数据

要读取布尔值等其他数据,我使用以下调用:

plc.Read("DB105.DBX0.0")
Run Code Online (Sandbox Code Playgroud)

我了解到,在数据块 105 (DB105) 中读取数据类型为布尔值 (DBX),偏移量为 0.0 我想对字符串应用相同类型的读取。所以我在我的示例中尝试了“DB105.DBB10.0”。但它返回一个字节类型的值“40”(我应该有别的东西)

我看到还有另一种阅读方法

plc.ReadBytes(DataType DB, int DBNumber, int StartByteArray, int lengthToRead)
Run Code Online (Sandbox Code Playgroud)

但我很难了解如何将其应用到我的示例中(我知道之后必须将其转换为字符串)。

继续: - 有没有一种简单的方法可以使用“DB105.DBX0.0”这样的字符串来读取西门子PLC中的字符串数据?- 如果不是,如何在我的示例中使用 ReadBytes 函数?

感谢您的帮助

c# plc siemens

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

附加到 .NET Core 程序时没有符号(单个文件)

为了更好地解释,我将提供一些背景信息。

我有一个在运行时动态加载库的应用程序。该库是某种插件,应用程序旨在测试该插件。

为了能够调试插件,我使用插件项目打开 VS Code,并将调试器附加到已运行且已加载插件的应用程序。插件程序集已构建并具有一个不错的 PDB 文件。

所以工作流程如下:Application => load plugin => attach debugger

首先,即使应用程序已发布,这也是有效的。这是因为加载的插件是在调试中内置的,因此 PDB 就在那里。

但是,在某些情况下,我似乎无法正确附加或未加载符号。这是如果我发布带有该/p:PublishSingleFile=true标志的应用程序的话。在这种情况下,会生成一个文件,当我尝试附加调试器时,它不起作用。

谁能对此提供任何见解?或者一个可能的解决方案?

值得一提的是,我正在使用 .NET 5

干杯

c# .net-core .net-5 .net-core-publishsinglefile

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

Convert decimal? to decimal in earlier versions of .NET (C# Version 7.3)

So after searching for similar questions, I haven't seen any results.

The error that keeps popping up is

Feature 'target-typed conditional expression' is not available in C# 7.3. Please use language version 9.0 or greater.

The code:

.Select(x => new FinancialStatementDto
 {
   Uid = Guid.NewGuid(),
   AccountNumber = x.Key.AccountNumber,
   Credit = x.Any(y => y.Credit.HasValue) ? Math.Abs((decimal)x.Sum(y => y.Credit)) : null,
   Debit = x.Any(y => y.Debit.HasValue) ? x.Sum(y => y.Debit) : null,
   AccountName = x.Key.AccountName
 });
Run Code Online (Sandbox Code Playgroud)

The error pops up on Credit …

c# decimal type-conversion c#-7.3

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

循环读取excel数据

我需要将读取的数据从excel循环到vb.net,当我到达最后一行/列"!@#$%^&*()"时,excel数据将停止读取.我怎样才能做到这一点?

Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
    Dim xlApp As Excel.Application
    Dim xlWorkBook As Excel.Workbook
    Dim xlWorkSheet As Excel.Worksheet
    Dim xRange As Excel.Range
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    End Sub
    Private Sub cmdGenerate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdGenerate.Click
        'Dim row As String
        Dim empty_cell_ctr As Integer = 0 '5
        Dim end_of_xlsheet As Boolean = False
        Dim sRow As Integer 'start row
        Dim col_end As Integer 'col W
        ' …
Run Code Online (Sandbox Code Playgroud)

vb.net excel vba excel-interop

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