小编Vas*_*sya的帖子

如何在C#中将字节数组转换为double数组?

我有一个包含双精度值的字节数组.我想将它转换为双数组.在C#中有可能吗?

字节数组看起来像:

byte[] bytes; //I receive It from socket

double[] doubles;//I want to extract values to here
Run Code Online (Sandbox Code Playgroud)

我用这种方式创建了一个字节数组(C++):

double *d; //Array of doubles
byte * b = (byte *) d; //Array of bytes which i send over socket
Run Code Online (Sandbox Code Playgroud)

.net c# bytearray

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

带有非导出函数的 DllImport。为什么有效?

我刚刚在 C# 中遇到了 DllImport 的奇怪行为,我无法解释。我想知道它是如何可能的,以及我可以在哪里阅读它。案例是通过 DllImport 可以调用不真正导出表单 dll 的函数。就我而言,它是 kernel32.dll 和函数 ZeroMemory(但具有复制/移动/填充内存这样的行为)。所以,我的代码:

[DllImport("kernel32", EntryPoint = "LoadLibraryW", CharSet = CharSet.Unicode, SetLastError = true)]
public static extern IntPtr LoadLibrary(string libName);

[DllImport("kernel32.dll", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = true)]
public static extern IntPtr GetProcAddress(IntPtr module, string procName);

//WTF???
[DllImport("kernel32.dll", SetLastError = true)]
public static extern bool ZeroMemory(IntPtr address, int size);

static void TestMemory()
{
    IntPtr mem = Marshal.AllocHGlobal(100); //Allocate memory block of 100 bytes size
    Marshal.WriteByte(mem, 55);            //Write some value in …
Run Code Online (Sandbox Code Playgroud)

.net c# winapi marshalling dllimport

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

Noexcept equivilent in C#

I want to ask is there in C# analogue for C++ "noexcept" attribute for methods which does not generate any exceptions. Something like that:

    public int SomeMethod() noexcept
    {
     throw new ArgumentNullException (); //Compile error: Method with 'noexcept' 
attribute can't generate exceptions.
    }
Run Code Online (Sandbox Code Playgroud)

And when I want to call this method in my code I need not to think about try/catch block for this method.

.net c# language-features exception

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

C#找不到已加载的程序集

我正在编写一个使用插件的应用程序.插件是位于插件目录中的类库.我的应用程序通过LoadFrom加载这些库.其中一些具有库的形式的依赖关系,它们位于相同的插件目录中.当我尝试通过Activator.CreateInstance从其中一个插件创建类的实例时,我收到一个异常'无法找到程序集'(这是插件的依赖程序集),但是这个程序集已经加载(!)和插件,它是在ProcessExplorer中可见.我无法理解我的麻烦.

.net c#

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

GitLab CI/CD .gitlab-ci.yml 文件中字符串的大小写不敏感比较

我有一些名为“MyVariable”的变量,并希望将其与规则内的某些字符串常量进行比较:if 作业内的部分:

rules:
        - if: $MyVariable == 'some string'
Run Code Online (Sandbox Code Playgroud)

但 MyVariable 实际上可以在不同的情况下使用,例如:

SOME STRING
Some String
SoME strinG
Run Code Online (Sandbox Code Playgroud)

等等。当前比较 (==) 区分大小写,当 MyVariable 不完全是“某个字符串”(小写)时,表达式结果为“假”。是否有可能以不区分大小写的方式比较两个字符串?

gitlab gitlab-ci

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

是否可以在一个类中实现几个IEnumerable <T>?

我想做这样的事情:

class T : IEnumerable<string>, IEnumerable<int>
{
    string [] _strings = new string [20];
    int[] _ints = new int[20];

    public T() { }

    IEnumerator<string> IEnumerable<string>.GetEnumerator()
    {
        foreach (string str in _strings)
            yield return str;
    }

    IEnumerator<int> IEnumerable<int>.GetEnumerator()
    {
        foreach (int i in _ints)
            yield return i;
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return this.GetEnumerator();
    }

}
//Using in code:
T t = new T();
foreach (int i in t)
   //to do something
foreach (string str in t)
   //to do stuff
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法实现与否.可能有伎俩?

.net c# ienumerable

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

如何为多个foreach实现正确的IEnumerator接口?

我有一个代码:

        class T : IEnumerable, IEnumerator
        {
            private int position = -1;

            public T() { }

            public IEnumerator GetEnumerator() { return this; }

            public object Current { get { return position; } }

            public bool MoveNext()
            {
                position++;
                return (position < 5);
            }

            public void Reset() { position = -1; }
        }

//Using in code:
T t = new T();
foreach (int i in t)
 //to do something
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,所有工作正常,但是当我使用next时:

foreach (int i in t)
   if (i == 2)
     foreach (int …
Run Code Online (Sandbox Code Playgroud)

.net c# ienumerable ienumerator

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

如何清除最重要的位?

如何将int中的最高位从1更改为0?例如,我想将01101更改为0101.

c# bit-manipulation

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

我怎样才能保证T是班级?

我有下一个代码:

public static T GetSerializedCopy<T> (T src)
{
  //some code to obtain a copy
}
Run Code Online (Sandbox Code Playgroud)

我怎么能保证T会成为一个类,而不是结构或枚举或其他东西?

.net c# generics

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

IPAddress上的奇怪.Net行为等于

可能重复:
如何比较IP地址

请告诉我某人,为什么这段代码(.Net 4.0):

IPAddress ip = IPAddress.Parse("0.0.0.0");
if (ip == IPAddress.Any) Console.WriteLine("any"); 
else Console.WriteLine("Not any");
Console.WriteLine(IPAddress.Any.ToString());
Run Code Online (Sandbox Code Playgroud)

在控制台中显示下一个结果:不是任何0.0.0.0

.net c#

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