小编Jan*_*kke的帖子

为什么大多数序列化程序使用流而不是字节数组?

我目前正在研究套接字服务器,我想知道为什么序列化器会像

所有都需要Stream而不是字节数组?

c# serialization stream

29
推荐指数
3
解决办法
2875
查看次数

dotnet核心数据库首先使用NetTopologySuite

我最近升级到EntityFrameworkCore.PostgreSQL的最新版本,但空间数据似乎不起作用,因为他们现在使用NetTopologySuite看到这里

要设置NetTopologySuite插件,请将Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite nuget添加到项目中.然后,对UseNpgsql()行进行以下修改:

我用这个dotnet ef dbcontext scaffold命令

dotnet ef dbcontext scaffold "MyConnectionString" Npgsql.EntityFrameworkCore.PostgreSQL
Run Code Online (Sandbox Code Playgroud)

但是,该scaffold命令似乎没有使用NetTopologySuite映射.我仍然收到以下错误

Could not find type mapping for column 'public.behaviour.coord' with data type 'geometry(Point)'. Skipping column.
Run Code Online (Sandbox Code Playgroud)

如何使用NetTopologySuite构建我的数据库

c# postgresql nettopologysuite .net-core

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

C# 8 基本接口的默认方法调用解决方法

根据https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/default-interface-methods 可以使用以下语法显式调用接口基础实现。

base(IInterfaceType).Method();
Run Code Online (Sandbox Code Playgroud)

但这似乎还没有实施。

是否有解决方法(例如反射)来实现这一目标?


示例代码来说明问题

interface IA
{
    void M()
    {
        Console.WriteLine("IA.M");
    }
}

interface IB : IA
{
    void IA.M()
    {
        Console.WriteLine("IB.M");
    }
}

interface IC : IA
{
    void IA.M()
    {
        Console.WriteLine("IC.M");
    }
}

class D : IA, IB, IC
{
    public void M()
    {
        // base(IB).M(); Is not yet supported apparently
        ((IB)this).M(); // Throws stack overflow
    }
}

class Program
{
    static void Main(string[] args)
    {
        D d = new D();
        d.M();
    }
}
Run Code Online (Sandbox Code Playgroud)

c# reflection .net-core c#-8.0

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

Go容易受到缓冲区溢出的影响

我知道像c#这样的语言不容易受到缓冲区溢出的影响,除非你编组或使用不安全的代码.但是容易受到缓冲区溢出的影响吗?

buffer-overflow go

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

查找指针'找出写入此地址的内容'奇怪的偏移量

我正在尝试为UrbanTerror42找到一个基本指针.我的设置如下,我有一个有2个玩家的服务器.作弊引擎在客户端运行a.我用客户端b爬梯子,然后扫描增加/减少.当我找到这些值时,我会使用find out what writes to this address.但偏移非常高,并指向空记忆.我真的不知道如何继续

为了清楚起见,我查找了其他几个值,他们也遇到了同样的问题

我已经看了很多教程和论坛,但这总是关于偏移量在0到100而不是80614之间的值.

如果有人能告诉我为什么会这样,以及我必须做什么/学会如何继续,我将非常感激.

在此输入图像描述

在此输入图像描述

提前致谢

pointers offset cheat-engine

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

为什么 Array.AsSpan() 循环速度更快?

|         Method |     Mean |    Error |   StdDev |
|--------------- |---------:|---------:|---------:|
|  ArrayRefIndex | 661.9 us | 12.95 us | 15.42 us |
| ArraySpanIndex | 640.4 us |  4.08 us |  3.82 us |
Run Code Online (Sandbox Code Playgroud)

为什么循环array.AsSpan()比直接循环源数组更快?

public struct Struct16
{
    public int A;
    public int B;
    public int C;
    public int D;
}

public class Program
{
    public const int COUNT = 100000;
    
    static void Main(string[] args)
    {
        var summary = BenchmarkRunner.Run<Program>();
    }

    [Benchmark]
    public int ArrayRefIndex()
    { …
Run Code Online (Sandbox Code Playgroud)

c# arrays performance benchmarking

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

为什么System.Drawing.Color不是枚举

为什么是System.Drawing.Color一个结构System.ConsoleColor一个枚举

c# enums struct colors

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

Rust中星号符号的用法是什么?

我是Rust的新手,我不理解以下代码:

let mut x = 5;
{
    let y = &mut x;
    *y += 1;
}
println!("{}", x);
Run Code Online (Sandbox Code Playgroud)

Rust网站的说明:

您还会注意到,我们增加了一个星号(*前面)y,使得它*y,这是因为y是一个&mut参考。您还需要使用astrisks [sic]访问引用的内容。

如果*y是参考,以下代码为何起作用

fn main() {
    let mut x = 5;
    {
        let y = &mut x;
        println!("{}", y);
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我没有在这里修改值,但是有什么区别,为什么y += 1;不起作用?

rust

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

使用泛型参数而不是显式调用构造函数

我认为这个问题是重复的.但我在SO上找不到这个问题

我想实例化一个泛型类.但是如果存在具有显式参数的构造函数并且由于给定类型,泛型构造函数也具有该参数,则使用具有显式参数的构造函数.

 class Program
 {
    static void Main(string[] args)
    {
       Example<string> test = new Example<string>("test");
       test.Print();//Prints test2
    }
 }

 class Example<T>
 {
    private object Value;

    public Example(T value1)
    {
       this.Value = value1 + "1";
    }

    public Example(string value2)
    {
       this.Value = value2 + "2";
    }

    public void Print()
    {
       Console.WriteLine(Value as string);
    }
 }
Run Code Online (Sandbox Code Playgroud)

有没有办法调用泛型构造函数?

c# generics constructor

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

Socket.IOControl dotnet core Linux 不工作

我目前正在使用Socket.IOControl使用 keepalive 的服务器上工作 ,但它在 dotnet core Linux 中不起作用当我尝试运行它时,我得到一个PlatformNotSupportedException

是否有跨平台替代方案可以在 dotnet core 中实现 keepalive?

测试代码示例

private static void Main(string[] args)
{
    Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    socket.Bind((EndPoint)new IPEndPoint(IPAddress.Loopback, 3178));
    socket.Listen(10);
    Console.WriteLine("Server: Begin Listening");
    socket.BeginAccept(new AsyncCallback(Program.AcceptCallback), (object)socket);
    Console.WriteLine("Client: Begin Connecting");
    TcpClient tcpClient = new TcpClient();
    tcpClient.Connect(new IPEndPoint(IPAddress.Loopback, 3178));
    Console.WriteLine("Client: Connected");
    Console.WriteLine("Client: Client keepAlive");
    Program.SetSocketKeepAliveValues(tcpClient.Client, 1000, 1);
    Thread.Sleep(50);
    Console.WriteLine("Done");
    Console.ReadLine();
}

private static void AcceptCallback(IAsyncResult ar)
{
    Socket asyncState = ar.AsyncState as Socket;
    try
    {
        Socket socket = asyncState.EndAccept(ar);
        Console.WriteLine("Server: …
Run Code Online (Sandbox Code Playgroud)

sockets keep-alive notsupportedexception .net-core

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

为什么我必须在Rust中的struct之外声明方法?

为什么在结构外部创建方法?

在像C#这样的语言中,您可以在结构中添加方法.我知道在C和C++这样的语言中你有头文件所以它有意义,但据我所知,我不能在Rust中创建头文件.

methods struct rust

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

Rust如何知道变量是否可变?

以下C#代码编译正常:

static readonly List<int> list = new List<int>();
static void Main(string[] args)
{
    list.Add(1);
    list.Add(2);
    list.Add(3);
}
Run Code Online (Sandbox Code Playgroud)

如果我在Rust中编写类似的代码,它将无法编译,因为它不能将immutable借用v为mutable:

let v = Vec::new();
v.push(1);
v.push(2);
v.push(3);
Run Code Online (Sandbox Code Playgroud)

push函数如何知道v是不可变的?

mutable rust

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