小编vrn*_*mar的帖子

C#中用于铸造的最佳做法是什么?

键入铸造和检查哪种方法是最佳做法?

Employee e = o as Employee;
if(e != null)
{
 //DO stuff
}
Run Code Online (Sandbox Code Playgroud)

要么

if(o is Employee)
{
Employee e = (Employee) o;
 //DO stuff
}
Run Code Online (Sandbox Code Playgroud)

.net c#

13
推荐指数
2
解决办法
8038
查看次数

是否在创建其继承类的新对象时创建了基类的对象?

在C#中,当我们创建一个继承的类对象时,它是否也创建了一个基类对象?因为它从子类的构造函数中调用基类构造函数而感到困惑.

将从子类构造函数调用基类构造函数,创建基类对象?

.net c#

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

获取内部错误:BuildFrameworkTcImports:在VSCode中使用ionide无法解析'FSharp.Core,Version = 4.4.1.0'

在PROBLEMS窗口中获取此内部错误并且自动完成无效.

file: 'file:///startup'
    severity: 'Error'
    message: 'internal error: BuildFrameworkTcImports: no resolution of 'FSharp.Core, Version=4.4.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a''
    at: '1,1'
    source: ''
Run Code Online (Sandbox Code Playgroud)

VSCode版本:1.10.1

f# visual-studio-code ionide

8
推荐指数
0
解决办法
260
查看次数

Docker running `linux/amd64` image in apple M1 and getting qemu: uncaught target signal 11 (Segmentation fault) - core dumped

我正在使用 Apple M1 系统在 docker 上运行linux/amd64图像。qemu: uncaught target signal 11 (Segmentation fault) - core dumped在 docker 中运行测试时出现此错误。我用 toplatform: linux/amd64来指定平台。我发现了与此相关的 github 问题https://github.com/docker/for-mac/issues/5123

  • docker是用来qemu运行的linux/amd64 image on Apple M1?
  • 有没有其他方法可以linux/amd64在 Apple M1 上运行映像,或者应该等待arm64对我正在使用的映像的支持?

linux docker apple-m1

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

使用Mono Debug扩展在VSCode中调试F#控制台应用程序时,断点不会发生

我创建了一个测试控制台应用程序,并尝试使用VSCode和Mono Debug扩展来调试它.

fsharp代码:

module TestFharp

[<EntryPoint>]
let main argv =
    printfn "Args %A" argv
    let x = 5
    printf "hello world"
    0 
Run Code Online (Sandbox Code Playgroud)

launch.json:

{
    "version": "0.2.0",
    "configurations": [

        {
            "name": "Launch",
            "type": "mono",
            "request": "launch",
            "program": "C:/FSharp/test/TestFharp/bin/Debug/TestFharp.exe",
            "args": [],
            "cwd": "${workspaceRoot}",
            "preLaunchTask": "",
            "runtimeExecutable": null,
            "env": {},
            "externalConsole": false,
            "stopOnEntry": true
        },
        {
            "name": "Attach",
            "type": "mono",
            "request": "attach",
            "address": "localhost",
            "port": 55555
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

DEBUG CONSOLE窗口的输出

mono --debug --debugger-agent=transport=dt_socket,server=y,address=127.0.0.1:61724 C:/FSharp/test/TestFharp/bin/Debug/TestFharp.exe 
Args [||]
hello world
Run Code Online (Sandbox Code Playgroud)
  • 我是否需要进行任何其他设置才能达到断点?
  • build文件在build文件夹和\ projectFolder\bin\Debug之间有什么区别?

mono f# visual-studio-code

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

为什么C#通用程序比特定类型的程序手专用变体表现更好?

我正在阅读.NET公共语言运行时的泛型设计和实现.在性能部分,它表示通用代码与手专用版本一样或更高效.

我为此创建了一个基准测试,并使用.NET基准测试库验证了它的简单堆栈.

字符串和双精度类型的结果

类型 - 双

                                  Method |     Mean |     Error |    StdDev |
---------------------------------------- |---------:|----------:|----------:|
     GenericStackPushAndPopForTypeDouble | 5.038 ns | 0.0522 ns | 0.0489 ns |
      ObjectStackPushAndPopForTypeDouble | 7.619 ns | 0.0842 ns | 0.0787 ns |
 HandWrittenStackPushAndPopForTypeDouble | 5.722 ns | 0.0594 ns | 0.0555 ns |
Run Code Online (Sandbox Code Playgroud)

类型 - 字符串

                                  Method |     Mean |     Error |    StdDev |
---------------------------------------- |---------:|----------:|----------:|
     GenericStackPushAndPopForTypeString | 3.817 ns | 0.0103 ns | 0.0080 ns |
      ObjectStackPushAndPopForTypeString | 4.764 ns | …
Run Code Online (Sandbox Code Playgroud)

.net c# generics

6
推荐指数
0
解决办法
201
查看次数

是否可以强制JVM在堆栈之外的堆栈中创建对象?

我读了一些有时JVM会识别某些对象并尝试在堆栈中创建它而不是堆的地方,因为堆栈上的内存分配比堆中的内存分配便宜,堆栈上的释放是免费的,堆栈是由堆栈高效管理的运行时.那么堆栈中的这个对象分配是如何工作的,有没有办法强制JVM这样做呢?

java heap stack jvm

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

获取“索引超出数组范围”。在调用 EnvDTE80.ErrorItems.item() 时

我试图在 Visual Studio 2015 错误列表窗口中获取所有错误,但在尝试通过 errors.Item(i) 调用访问 ErrorItem 时,我得到了一个索引越界异常。我错过了任何演员吗?

EnvDTE80.DTE2 dte2 =  ServiceProvider.GetService(typeof(EnvDTE.DTE)) as DTE2);
ErrorItems errors = dte2.ToolWindows.ErrorList.ErrorItems;
for (int i = 0; i < errors.Count; i++)
{
    ErrorItem item = errors.Item(i);
}
Run Code Online (Sandbox Code Playgroud)

c# visual-studio envdte

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

当类型不同但兼容比较值时,如何检查值类型的装箱对象的相等性

当我们装箱两种值类型(它们是不同的类型但兼容以比较值,例如:int 和 short)并尝试调用 Equals 方法时,即使值相同也会给出 false。

情况1:

int a = 5;
short b = 5;
var ob_a = (object) a;
var ob_b = (object) b;
var result = a == b; // true
var result_for_objects = ob_a.Equals(ob_b); // false
Run Code Online (Sandbox Code Playgroud)

另一方面,当两个值类型相同时,Equals 返回实际值比较结果。

案例2:

int a = 5;
int b = 5;
var ob_a = (object) a;
var ob_b = (object) b;
var result = a == b; // true
var result_for_objects = ob_a.Equals(ob_b); // true
Run Code Online (Sandbox Code Playgroud)

我比较了两种情况的两种反汇编代码,但它是相同的,我找不到任何区别。

            var result = a == …
Run Code Online (Sandbox Code Playgroud)

.net c# referenceequals

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

什么是C#中的ArraySystem.Object和System.Object之间的区别?

我在包含不同类型对象的对象上创建了一个数组,并检查了每个元素的类型.然后将数组转换为List并检查每个元素的类型但结果是不同的?

object[] aobj = {"",4,2.5,7,new object()};
foreach (var element in aobj)
{
    Console.WriteLine("Type is Array"+element.GetType());
}


IList lsit = aobj as IList;

foreach (var element in lsit)
{
    Console.WriteLine("Type is in List " + element.GetType());
}
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

为什么会出现ArraySystem.ObjectSystem.Object?有什么不同 ?

c# arrays

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