我正在使用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)
在前面的例子中,使用类会有所作为吗?如果是这样,差异会是什么?在这个例子中,一个类是否比结构更快?为什么?
谢谢.若昂卡洛斯
我正在为一个程序编写一个插件,我想把我的代码放在一个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内的代码?(即避免重新设计)
在此先感谢=)
我在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) 我试图让一个简单的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) 我想制作一个快速爆发的火码,它会以30毫秒的间隔称我为20次.
这是我到目前为止所尝试的:
Observable.Repeat(20).Delay(TimeSpan.FromMilliseconds(30)).Subscribe()
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎是合乎逻辑的解决方案,但我的应用程序正在崩溃,我认为它是因为它永远不会停止.
使用UniRx我该如何实现? https://rx.codeplex.com/
我strtotime("first day of this month", time());用来获取本月的开始,strtotime("midnight", time());的开始以获取当前日期的开始。现在我想获取当前小时的开始时间。
strtotime("last hour", time()); 给我当前小时,负 1。
查看文档,我发现您可以构建表达式来获得所需的时间,但是,我尝试了几次,但被卡住了。“这一小时的第一秒”或“这一小时的第一秒”和“这一小时”(与“现在”相同)都给了我不正确的值。
我将如何使用 获取当前小时的第一时刻的时间戳strtotime?
c# ×4
php ×2
assemblies ×1
class ×1
html ×1
import ×1
obfuscation ×1
performance ×1
phpstorm ×1
reference ×1
reflection ×1
struct ×1
websocket ×1