小编Joa*_*los的帖子

类VS ref Struct

我正在使用C#编写游戏,因此,我非常关注性能.

我想知道主要区别是什么,如果可能的话,使用Class传递数据或通过引用传递的struct的性能考虑.

出于性能原因,我希望不要复制数据(我假设通过ref传递比这里的值快得多).

我知道一个类总是通过引用传递,并且结构是通过值传递的,但我在谈论通过引用传递结构.

我希望传递的数据示例:

    public delegate void PathCompleteDelegate(List<PathFinderNode> path);
public struct PathFinderJob{
    public PathCompleteDelegate callback;
    public Vector3 start, end;
    public PathSize unitSize;
    public BoxCollider boxCollider;
}
Run Code Online (Sandbox Code Playgroud)

在前面的例子中,使用类会有所作为吗?如果是这样,差异会是什么?在这个例子中,一个类是否比结构更快?为什么?

谢谢.若昂卡洛斯

c# performance struct reference class

6
推荐指数
2
解决办法
3618
查看次数

C#仅使用代码添加引用(没有IDE"添加引用"功能)

我正在为一个程序编写一个插件,我想把我的代码放在一个DLL中,这样我就可以自由地共享插件而不暴露(赠送)我的代码.

这是我可以访问的基本结构:

using System;
public class Plugin
{
    public void Initialize()
    {
        //do stuff here
        doWork();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我只引用我的代码所在的.cs文件,程序"吃掉"这个插件.现在,我已经把几个逻辑在里面,包括主要的arent直接与功能"初始化()",仅在的doWork()函数,启动整个系统.

现在,我想将所有代码放在DLL中,然后从Initialize(),myDll.doWork()(或类似的东西)中调用.

PS:这个dll将是一个已编译的C#库(它可以被称为动态程序集导入吗?它不会真正动态,因为它会在执行前编译,对吧?)

PS2:这样我还可以添加自定义资源,如表格,图片等,没有太大的困难吧?

PS3:是否有一个免费的工具来保护这种DLL内的代码?(即避免重新设计)

在此先感谢=)

c# reflection import obfuscation assemblies

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

当与HTML混合时,PhpStorm不会突出显示.php文件中的PHP代码

我在PHPStorm中遇到问题,当它与HTML代码混合时,它不会突出显示.php文件中的PHP代码(但会智能感知它).

截图(点击放大):

截图

如果我使缓存/重启无效,它会在几秒钟内显示正确的突出显示.但是,在"计算"之后,它将返回不突出显示它.

这有什么设置吗?或者它只是一个普通的错误?

我已经阅读了有关语言注入的内容,但这似乎不适合它,因为它已经是.php文件而且PHP不在注入语言列表中.

相关代码:

<?php
$works = "yes";
?>

<html>
<body>

<script>
    var shouldStillWorkAfterThis = true;
</script>

<?php
$works = "yes";
?>

<table>
    <tr>
        <td><?php $works = "yes"; ?></td>
    </tr>
</table>

<!-- lets try split syntax -->
<?php
if ($works) {
    ?>
    <table>
        <tr>
            <td><?= $works ?></td>
        </tr>
    </table>
    <?php $thisShouldToo = true; ?>
<?php } ?>

<!-- lets break it -->
<div id="someclass">
    <header>
        <div class="someotherclass">
            <div class="andanextraclass">
                <!-- include a file-->
                <?php include('somefile.php');?>
                <?php
                    $anythingHereIsNowBroken = …
Run Code Online (Sandbox Code Playgroud)

html php phpstorm

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

WebSockets握手后Chrome会断开连接

我试图让一个简单的WebSocket示例在我的机器上工作(localhost),我得到JavaScript和C#运行得很好并且连接,除了Chrome握手后断开连接.

我整个上午都在搜索,我认为它与相同的域策略有关,正如另一个"问题"所示,我已将浏览器更新到最新版本(12.xxx).

但是,我无法找到解决问题的方法.

我在C#端使用:

ConnectionOrigin = "http://localhost:8080";
ServerLocation = "ws://localhost:8181/test";
Run Code Online (Sandbox Code Playgroud)

我使用从磁盘直接打开的普通HTML文件(file:///在URL栏上)运行JavaScript .我也尝试过使用XAMPP在本地托管它,但我总是遇到同样的问题.

附加了C#程序的日志输出:

   New connection from 127.0.0.1:8181 requested. Handshaking ...
Reading handshake ...
GET /test HTTP/1.1
Upgrade: WebSocket
Connection: Upgrade
Host: localhost:8181
Origin: null
Sec-WebSocket-Key1: R 506   I   2D }6 qFB  G0`@88J? 4
Sec-WebSocket-Key2: y  20   8403!24  L 5 8

Sending handshake ...
HTTP/1.1 101 Web Socket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
WebSocket-Origin: http://localhost:8080
WebSocket-Location: ws://localhost:8181/test


New connection from 127.0.0.1:8181 established.
http://localhost:8080
Data …
Run Code Online (Sandbox Code Playgroud)

c# google-chrome websocket

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

使用RX(Reactive Extensions)创建20个延迟30毫秒的事件

我想制作一个快速爆发的火码,它会以30毫秒的间隔称我为20次.

这是我到目前为止所尝试的:

Observable.Repeat(20).Delay(TimeSpan.FromMilliseconds(30)).Subscribe() 
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎是合乎逻辑的解决方案,但我的应用程序正在崩溃,我认为它是因为它永远不会停止.

使用UniRx我该如何实现? https://rx.codeplex.com/

c# unity-game-engine system.reactive

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

PHP strtotime 开始这个小时

strtotime("first day of this month", time());用来获取本月的开始,strtotime("midnight", time());的开始以获取当前日期的开始。现在我想获取当前小时的开始时间。

strtotime("last hour", time()); 给我当前小时,负 1。

查看文档,我发现您可以构建表达式来获得所需的时间,但是,我尝试了几次,但被卡住了。“这一小时的第一秒”或“这一小时的第一秒”和“这一小时”(与“现在”相同)都给了我不正确的值。

我将如何使用 获取当前小时的第一时刻的时间戳strtotime

php

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