小编GSe*_*erg的帖子

异步写二进制?

我正在尝试使旧方法异步。
它从数据库中获取 BLOB 并将其作为文件写入磁盘。

但是,没有异步版本的BinaryWriter.
我可以用StreamWriter代替吗?因为它有WriteAsync方法。有什么区别?有什么缺点吗?

部分代码:

OracleParameter returnParam = new OracleParameter("blob", OracleDbType.Blob);
command.Parameters.Add(returnParam);

await command.ExecuteNonQueryAsync();

OracleBlob blob = returnParam.Value as OracleBlob;

byte[] data = new byte[blob.Length];

await blob.ReadAsync(data, 0, Convert.ToInt32(blob.Length));

fileFullPath = Path.Combine(folder, fileName);

using (FileStream fs = new FileStream(fileFullPath, FileMode.OpenOrCreate, FileAccess.Write))
{
    using (BinaryWriter bw = new BinaryWriter(fs))
    {
        bw.Write(data); //NO ASYNC METHOD HERE
        logger.Debug("Finished writing file {0} to disk", fileFullPath);
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以改成下面这样吗?

OracleParameter returnParam = new OracleParameter("blob", OracleDbType.Blob);
command.Parameters.Add(returnParam);

await …
Run Code Online (Sandbox Code Playgroud)

.net c# binary-data streamwriter async-await

0
推荐指数
1
解决办法
515
查看次数

从 C# 转换为 vb.net 后显示错误

我正在尝试将 C# 代码转换为 Visual Basic。

这是 C# 代码:

public static string RequestServer1(string methodName, List<string> parameters)
{
    return RequestServer(methodName, parameters.Select(p => new JValue(p)).ToList<JToken>());
}
Run Code Online (Sandbox Code Playgroud)

这是 VB.Net 代码:

Public Shared Function RequestServer(ByVal methodName As String, ByVal parameters As List(Of String)) As String
    Return RequestServer(methodName, parameters.Select(Function(p) New JValue(p)).ToList())
End Function
Run Code Online (Sandbox Code Playgroud)

这里的功能是List(Of JToken)

Public Shared Function RequestServer(ByVal methodName As String, ByVal parameters As List(Of JToken)) As JToken
    Dim ServerIp As String = "http://localhost:8332"
    Dim UserName As String = "hama"
    Dim Password As …
Run Code Online (Sandbox Code Playgroud)

c# vb.net code-conversion json-rpc

0
推荐指数
1
解决办法
74
查看次数

适用于VB.NET但不适用于C# - 字节转换

所以我将一些代码从VB.NET迁移到C#,但是当它在C#中进行字节解析时失败了.

这是VB.NET代码可以工作:

Dim sModifiedAccountNumber_AsciiHex
Dim iByte As Byte = 0
Dim iIdx As Integer = 0
Dim strByte As String = String.Empty

sModifiedAccountNumber_AsciiHex = "FC13"
For iIdx = 1 To 3 Step 2

    iByte = CByte("&H" & Mid$(sModifiedAccountNumber_AsciiHex, iIdx, 2))
    If iByte >= 120 And iByte <= 127 Then
        iByte = iByte Or &H80
        strByte = Hex$(iByte)
        Do While Len(strByte) < 2
            strByte = "0" & strByte
        Loop
        Mid$(sModifiedAccountNumber_AsciiHex, iIdx, 2) = strByte
    End If

Next
Run Code Online (Sandbox Code Playgroud)

C#版本:

string modAccountNumberAsciiHex = …
Run Code Online (Sandbox Code Playgroud)

c# vb.net vb6-migration

-1
推荐指数
1
解决办法
733
查看次数

StreamWriter的Visual Studio bug还是我的误会?

我必须处理一些包含西里尔文本的文件,我在Visual Studio 2012 Ultimate中使用StreamReader/ StreamWriter.

然而,有一些荒谬的问题(或我的误解).以下构造函数工作得很好:

using (StreamReader reader = new StreamReader(someFile, Encoding.Default)){
}
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试以下内容时:

using (StreamWriter writer = new StreamWriter(someOtherfile, Encoding.Default)){
}
Run Code Online (Sandbox Code Playgroud)

我得到一个ivalid构造函数的编译时错误.然而,以下是MSDN的规范:

public StreamWriter(Stream stream, Encoding encoding);
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c# streamwriter streamreader

-1
推荐指数
1
解决办法
325
查看次数

为什么我的if else语句不起作用

前两个语句以给定的数字输入运行,但第三个语句不运行.

#include <iostream>
using namespace std;

int main()
{

    double X;

    cout << "Please pick a number from -10 to 10";

    cin >> X;

    if ((-3 <= X)&&( X <= 2))
        cout << "Y = " << ( X * X) + (2 * X) -3 << endl;

    else if ((2 < X)&&(X <= 10))
        cout << "Y = " << (5 * X) + 7 << endl;

    else if ((X > 10)&&(X < -3))
        cout << "Y = " …
Run Code Online (Sandbox Code Playgroud)

c++

-1
推荐指数
1
解决办法
105
查看次数

C ++具有相同的公式,但结果不同(计算器与C ++)

最近两天我一直在做一个简短的项目,但是现在一切都崩溃了, 因为有一个方程在C ++ / C#程序中计算时返回8.660254,但是当您尝试手动或使用计算器计算时返回0。

方程:

float mgr1 = (x + tr * 0.5f - tr / 2) * 1.73205f * 10.0f;
Run Code Online (Sandbox Code Playgroud)

就我而言:

x = 0;
tr = 1;
float mgr1 = (0 + 1 * 0.5f - 1 / 2) * 1.73205f * 10.0f;
Run Code Online (Sandbox Code Playgroud)

正确的结果是,0但是用C ++计算时,它返回8.660254?我要疯了吗?关于C ++,我有不知道的东西吗?它是什么?

在此处输入图片说明

在此处输入图片说明

c# c++ equation numbers c++11

-1
推荐指数
1
解决办法
276
查看次数

如何在c#中创建一个int指针的动态数组?

我想要类似的东西std::vector<int*> v,但是在C#中。

我试过了List<int*> v,但是编译器说

CS0306 C#类型不能用作类型参数

我想放置int变量并通过数组更改它,例如C ++

std::vector<int*> v;
int a = 2;
v.push_back(&a);
v[0] = 4; // (a == 4) true
Run Code Online (Sandbox Code Playgroud)

c#

-1
推荐指数
1
解决办法
201
查看次数

替换功能查询

我一直在尝试制作战舰游戏。这是我的第一次编码,所以我正在尝试学习最好和最有效的编写方式。

基本上,目前我的问题是我有一个名为A1to 的字符串A10,我有一些可以随机选择A1-的代码A10。我想发生的事情是当选择了一个坐标即时A5,它将随后将的值更改A5为X或H,但是我在执行此操作时遇到了问题。

我已经尝试过使用A1.Replace("0", "1")它作为测试,但是它不起作用。

var A1 = "0";
var A2 = "0";
var A3 = "0";
var A4 = "0";
var A5 = "0";
var A6 = "0";
var A7 = "0";
var A8 = "0";
var A9 = "0";
var A10 = "0";

string[] DestroyerC = { "A1", "A2", "A3", "A4","A5","A6","A7",A8","A9",A10"};

// Create a Random object  
Random rand = new Random();
// Generate a …
Run Code Online (Sandbox Code Playgroud)

c#

-1
推荐指数
1
解决办法
172
查看次数

C# 中的数组复制语义

我试图准确理解下面这段代码中发生的事情:

static void someMethod(int[] a) {
    int[] b = new int[5];
    a = b;
}

static void Main(string[] args) {
    int[] arr = new int[10];
    someMethod(arr);
    Console.WriteLine(arr.Length);
}
Run Code Online (Sandbox Code Playgroud)

我无法解释的是为什么Console.Writeline()打印 10 而不是 5。 C# 中的数组是引用类型,所以我认为该行将a = b变量设置a为指向int[5]. 然而Console.Writeline() 打印 10。我无法解释数组的这种类似值类型的行为。有人可以解释一下吗?

.net c# arrays

-1
推荐指数
1
解决办法
271
查看次数

为什么 x&amp;1==0 和 !(x&amp;1) 在 C++ 的 if 语句中不会产生相同的结果?

我在语句中包含这两个条件if来检查是x偶数还是奇数,但似乎在偶数的情况下!(x&1)执行了主体,而没有执行它。ifxx&1==0

考虑到32 或 64 位表示中的1 & 0is和 1 ,我希望两者都给出 0 ,并且如果,比如说,是类似(偶数)的东西,那么它们的按位 和 应该产生 0。因此,我仍然不确定为什么有效。如果我有任何错误的地方,请纠正我。谢谢。0000..01x10010101100!(x&1)

c++ bitwise-operators c++17

-1
推荐指数
1
解决办法
132
查看次数

C#可以在String值中进行比较,返回布尔值.例如."5 <10"返回true

有没有办法在字符串值中进行比较可以返回Boolean值.例.如果(5> 5000)显然会返回假值.但我想做的是让"5> 5000"返回假值.

例.

string com = "5 > 10";
Run Code Online (Sandbox Code Playgroud)

那么有没有办法让这个com变量返回一个false值,好像它是整数之间的比较.

c# string comparison boolean

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

C 函数无论如何都返回零

所以,对于我的第一个 C 项目,我想从一个简单的计算器开始,但函数SUM所做的只是 return 0.00000

#include <stdio.h>

int SUM (float n1, float n2);

int main() {
    float num1 = 0; 
    float num2 = 0;
    float res = 0;
    scanf("Enter 2 numbers: %f %f", &num1, &num2);
    res = SUM(num1, num2);
    printf ("%f", res);
}

int SUM (float n1, float n2) {
    float sum = n1+n2;
    return &sum;
}
Run Code Online (Sandbox Code Playgroud)

c

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