我有以下功能:
//Function to get random number
public static int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
Run Code Online (Sandbox Code Playgroud)
我怎么称呼它:
byte[] mac = new byte[6];
for (int x = 0; x < 6; ++x)
mac[x] = (byte)(Misc.RandomNumber((int)0xFFFF, (int)0xFFFFFF) % 256);
Run Code Online (Sandbox Code Playgroud)
如果我在运行时使用调试器执行该循环,则会得到不同的值(这就是我想要的).但是,如果我在该代码下面放置一个断点两行,则"mac"数组的所有成员都具有相同的值.
为什么会这样?
我是前Pascal人,目前正在学习C#.我的问题如下:
下面的代码比开关更快吗?
int a = 5;
if (a == 1)
{
....
}
else if(a == 2)
{
....
}
else if(a == 3)
{
....
}
else if(a == 4)
{
....
}
else
....
Run Code Online (Sandbox Code Playgroud)
和开关:
int a = 5;
switch(a)
{
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
case 4:
...
break;
default:
...
break;
}
Run Code Online (Sandbox Code Playgroud)
哪一个更快?
我问,因为我的程序有类似的结构(许多很多"其他如果"语句).我应该把它们变成开关吗?
我已经阅读了大量有关C#v4附带的新关键字的文章,但我无法弄清楚"动态"和"var"之间的区别.
这篇文章让我思考它,但我仍然看不出任何区别.
难道你只能将"var"用作局部变量,而是局部变量和全局变量吗?
你能否展示一些没有动态关键字的代码,然后用动态关键字显示相同的代码?
这就是我想要做的:
switch(myvar)
{
case: 2 or 5:
...
break;
case: 7 or 12:
...
break;
...
}
Run Code Online (Sandbox Code Playgroud)
我尝试了"case:2 || 5",但它没有用.
目的是不为不同的值编写相同的代码.
我想在进度条上做两件事.
关于我想知道如何完成的这两件事的任何信息将非常适合!
谢谢.
下面的方法是我想在该线程中完成的:
public void Startup(int port,string path)
{
Run(path);
CRCCheck2();
CRCCheck1();
InitializeCodeCave((ushort)port);
}
Run Code Online (Sandbox Code Playgroud)
我试着用谷歌搜索,但没有任何效果
public void Test(int port,string path)
{
Thread t = new Thread(Startup(port,path));
}
public void TestA(int port,string path)
{
Thread t = new Thread(Startup);
t.Start (port,path);
}
Run Code Online (Sandbox Code Playgroud)
两者都不编译,怎么办?
我一直在C#和Delphi中这样做,但C++是邪恶的.目的是在当前目录中创建一个文件(可执行文件正在运行).
我的代码:
LPTSTR NPath = NULL;
DWORD a = GetCurrentDirectory(MAX_PATH,NPath);
HANDLE hNewFile = CreateFile(NPath,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
Run Code Online (Sandbox Code Playgroud)
我在GetCurrentDirectory()中遇到异常.
请告诉我为什么我得到一个例外,如何在C++中更容易?
我的程序在其面板上绘制文本,但如果我想删除文本,我必须重新绘制.
如何手动调用(加注)绘画事件?
我不知道这三种方法中哪一种最适合我.他们都为我工作.有谁知道刷新,更新和重绘之间的区别?
当我在RC2中获得它时,支持在Windows服务中托管应用程序.我试图在一个简单的web api项目上测试它(使用.NET Framework 4.6.1).
这是我的Program.cs代码:
using System;
using System.IO;
using System.Linq;
using System.ServiceProcess;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Hosting.WindowsServices;
namespace WebApplication4
{
public class Program : ServiceBase
{
public static void Main(string[] args)
{
if (args.Contains("--windows-service"))
{
Run(new Program());
return;
}
var program = new Program();
program.OnStart(null);
Console.ReadLine();
program.OnStop();
}
protected override void OnStart(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.Build();
host.RunAsService();
}
protected override void OnStop() {}
}
}
Run Code Online (Sandbox Code Playgroud)
所有其他的东西基本上都来自.NET Core模板(虽然我将框架更改为net461并在project.json中添加了一些依赖项).
使用dotnet publish并创建Windows服务后,sc create …
c# ×8
.net ×2
winforms ×2
.net-3.5 ×1
.net-core ×1
asp.net-core ×1
c++ ×1
delphi ×1
dynamic ×1
events ×1
if-statement ×1
performance ×1
random ×1
vcl ×1
windows ×1