我正在为我正在创建的程序创建一个日志系统,我现在已将它用于执行此操作的位置:
void outToLog(string output)
{
logRichTextBox.AppendText(output + "\r\n");
logRichTextBox.ScrollToCaret();
}
Run Code Online (Sandbox Code Playgroud)
但它最终输出了RichTextBox空白的最后一行(因为我正在使用\n),我希望最后一行只是输出,而不是空行.另一种选择是让我把它"\r\n"放在开头,但是除了它在开头之外,它只有相同的影响RichTextBox.
救命?谢谢
我有一个关于转换为可以为空的枚举的问题.这是一个代码:
enum Digits
{
One = 1,
Two = 2
}
void Main()
{
int one = 1;
object obj = one;
var en = (Digits?) obj;
Console.WriteLine(en);
}
Run Code Online (Sandbox Code Playgroud)
它让我排InvalidCastException在第11行.
但如果我省略'?' 在该行中的符号,它给出了正确的结果"一",但我不想失去"可空性".
作为我现在使用的解决方法var en = (Digits?) (int?) obj;,虽然我不确定这种解决方案的完全正确性,但它仍然有效.
但我想知道为什么在第一种情况下,铸造到可以为空的枚举失败了?
我期望对可空类型的转换如下:
- 转换为非可空类型,如果成功则转换为可空类型
- 如果null传递则结果null也是如此
但它似乎不是真的.
我试图创建Expression,但失败了.
我想建立类似的东西 Expression<Func<typeof(type), bool>> expression = _ => true;
我的尝试:
private static Expression GetTrueExpression(Type type)
{
LabelTarget returnTarget = Expression.Label(typeof(bool));
ParameterExpression parameter = Expression.Parameter(type, "x");
var resultExpression =
Expression.Return(returnTarget, Expression.Constant(true), typeof(bool));
var delegateType = typeof(Func<,>).MakeGenericType(type, typeof(bool));
return Expression.Lambda(delegateType, resultExpression, parameter); ;
}
Run Code Online (Sandbox Code Playgroud)
用法:
var predicate = Expression.Lambda(GetTrueExpression(typeof(bool))).Compile();
Run Code Online (Sandbox Code Playgroud)
但是我收到了错误: Cannot jump to undefined label ''
我有一个 ushort 数组,需要转换为字节数组才能通过网络传输。
一旦它到达目的地,我需要将它重新转换回原来的 ushort 数组。
超短数组
是一个长度为 217,088 的数组(分解图像 512 x 424 的一维数组)。它存储为 16 位无符号整数。每个元素为 2 个字节。
字节数组
出于网络目的,需要将其转换为字节数组。由于每个 ushort 元素值 2 个字节,我假设字节数组长度需要为 217,088 * 2?
在转换和正确“取消转换”方面,我不确定如何做到这一点。
这是针对 C# 语言的 Unity3D 项目。有人能指出我正确的方向吗?
谢谢。
我试图在相同的字符串之间获取字符串:
The texts starts here ** Get This String ** Some other text ongoing here.....
Run Code Online (Sandbox Code Playgroud)
我想知道如何获得星星之间的字符串。我应该使用一些正则表达式还是其他函数?
我需要为国家/地区获取两个字母的 ISO 区域名称ISO 3166- ISO 3166-1 alpha 2。我的问题是我只有瑞典语的国家名称,例如SverigeforSweden和Tysklandfor Germany。是否可以仅从这些信息中获取 RegionInfo?我知道英语国家名称是可能的。
作品:
var countryName = "Sweden";
//var countryName = "Denmark";
var regions = CultureInfo.GetCultures(CultureTypes.SpecificCultures).Select(x => new RegionInfo(x.LCID));
var englishRegion = regions.FirstOrDefault(region => region.EnglishName.Contains(countryName));
var twoLetterISORegionName = englishRegion.TwoLetterISORegionName;
Run Code Online (Sandbox Code Playgroud)
我有一个类似于的类:
public class MyClass : MyBaseClass
{
public string Field1 { get; set; }
public string Field2 { get; set; }
public string Field3 { get; set; }
public string Field4 { get; set; }
}
public class MyBaseClass
{
public string BaseField1 { get; set; }
public string BaseField2 { get; set; }
public string BaseField3 { get; set; }
public string BaseField4 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个从类中提取名称的方法.
private void MyMethod<T>(List<T> listData) where T : class
{
String[] …Run Code Online (Sandbox Code Playgroud) 我有两个片段,一个用Java编写,一个用c#编写.
float a = 1234e-3f;
float b = 1.23f;
float ca = 1.234e3f;
float d = 43.21f;
long e = 1234L;
int f = 0xa;
int g = 014;
char h = 'Z';
char ia = ' ';
byte j = 123;
short k = 4321;
System.out.println(a+b+ca+d+e+f+g+h+ia+j+k);
Run Code Online (Sandbox Code Playgroud)
在Java的代码片段返回7101.674
并在c#
float a = 1234e-3f;
float b = 1.23f;
float ca = 1.234e3f;
float d = 43.21f;
long e = 1234L;
int f = …Run Code Online (Sandbox Code Playgroud) 我有一个包含特殊字符的字符串,例如以下示例:12345678912 \ rJ \ u0011,因为我需要有权访问这些特殊字符来配置我的应用程序。我想在TextBox字段中完全显示此字符串,因此到目前为止,我尝试过的所有操作都会产生一个字符串,其中该字符\u0011尝试使用结尾处的空字符进行呈现:"7896104866061\rJ"。
我做了这个,但是没用。
string result = Regex.Replace(
ToLiteral(this.Buffer),
"[^\x00-\x7Fd]",
c => string.Format("\\u{0:x4}", (int)c.Value[0]))
.Replace(@"\", @"\\");
public static string ToLiteral(string input)
{
using (var writer = new StringWriter())
{
using (var provider = CodeDomProvider.CreateProvider("CSharp"))
{
provider.GenerateCodeFromExpression(
new CodePrimitiveExpression(input),
writer,
null);
return writer.ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我该怎么办?提前致谢。
嗨,我有一个列表框 每当用户选择一个项目时,就会向网络发送一个请求 现在我想在用户选择该项目时取消之前的操作,然后开始新的操作。
我使用以下代码来做到这一点,我想知道这些代码是否工作正常。还是我应该尝试另一种方式?
private CancellationTokenSource ts = new CancellationTokenSource();
private async void Subf2mCore(CancellationToken ct)
{
HtmlDocument doc = await web.LoadFromWebAsync(url);
...
foreach (var node in doc)
{
if (!ct.IsCancellationRequested)
{
....
}
}
}
Run Code Online (Sandbox Code Playgroud)
我以这种方式运行 func
ts?.Cancel();
ts = new CancellationTokenSource();
Subf2mCore(ts.Token);
Run Code Online (Sandbox Code Playgroud)