我有大约1000个类,我需要计算它的属性数.我有以下代码:
public static int NumberOfProperties()
{
Type type = typeof(C507);
return type.GetProperties().Count();
}
Run Code Online (Sandbox Code Playgroud)
我可以将其复制并粘贴到每个更改typeof
参数的类中,但这看起来有点单调乏味.
反正有没有做一个扩展方法来做到这一点var nop = C507.NumberOfProperties();
?
即时尝试使用以下代码访问另一个表单上的富文本框:
Private Delegate Sub StringDelegateChat(text As String, window As ChatWindow)
Private Sub AppendTextChatWindows(text As String, window As ChatWindow)
Try
If window.RichTextBox1.InvokeRequired Then
window.Invoke(New StringDelegateChat(AddressOf AppendTextChatWindows), text, window)
Else
window.RichTextBox1.AppendText(text)
window.RichTextBox1.SelectionStart = window.RichTextBox1.Text.Length
window.RichTextBox1.ScrollToCaret()
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
Run Code Online (Sandbox Code Playgroud)
但我得到交叉线程操作无效错误,我认为这样做是因为它错过了window.invoke
if语句的一部分.我也尝试替换If window.RichTextBox1.InvokeRequired Then
to,If InvokeRequired Then
但它会在一个继续循环中被捕获并引发堆栈溢出错误.
谢谢Houlahan
我使用以下代码来记录短信:
public void getColumnData(Cursor cur, Context context) {
ArrayList<String> exportBuffer = new ArrayList<String>();
try {
if (cur.moveToFirst()) {
String id;
String date;
String phoneNumber;
String body;
int idColumn = cur.getColumnIndex("_id");
int dateColumn = cur.getColumnIndex("date");
int numberColumn = cur.getColumnIndex("address");
int bodyColumn = cur.getColumnIndex("body");
do {
id = cur.getString(idColumn);
date = cur.getString(dateColumn);
body = cur.getString(bodyColumn);
phoneNumber = cur.getString(numberColumn);
String FormattedDate;
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss dd-MM-yyyy");
FormattedDate = sdf.format(date).toString();
exportBuffer.add(id + " ," + FormattedDate + " ," …
Run Code Online (Sandbox Code Playgroud) 我有一个循环函数,直到输入正确的 y,n 答案,但在选择结束时出现错误:
Time Check Failure #2 - Stack around the variable 'YESNO' was corrupted.
Run Code Online (Sandbox Code Playgroud)
我在谷歌上看了一下,并不能真正找到这个错误的任何相关答案,我的代码如下:
void Mesh_equations(float a,float b,float c,float d,float e,float f){
char YESNO[1]; //define variables.
int loop=0; //loop set to zero.
while(loop==0){ //while loop initiated whilst loop is equal to zero.
cout <<"\nDo you want to display your coefficients for the mesh equations...(y/n)?";
cin>>YESNO; //prompt and cin.
if ( YESNO[0] == 'Y' || YESNO[0] == 'y'){ //if cin is 'Y' or 'y'
system("CLS");
cout<<"Loop One:\n(" <<a <<")" …
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个新的CSV文件然后写入它,代码到达BufferedWriter
那时我得到一个java.io.FileNotFoundException: /mnt/sdcard/SMSMonitor/04-07-2011/Backup_20:43:00.csv (Invalid argument)
异常.有谁知道为什么会这样?
public void generateCSVFile(ArrayList<String> list)
{
File CreateDirectory = new File(Environment.getExternalStorageDirectory()
+ "/SMSMonitor/" + subFolderName);
CreateDirectory.mkdirs();
try
{
File file = new File(CreateDirectory +"/"+ fileName);
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write("ID, Date, Address, Body");
writer.newLine();
for (String s : list)
{
writer.write(s);
writer.newLine();
}
writer.newLine();
writer.flush();
writer.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
var channel = Channel.CreateUnbounded<string>();
var consumers = Enumerable
.Range(1, 5)
.Select(consumerNumber =>
Task.Run(async () =>
{
var rnd = new Random();
while (await channel.Reader.WaitToReadAsync())
{
if (channel.Reader.TryRead(out var item))
{
Console.WriteLine($"Consuming {item} on consumer {consumerNumber}");
}
}
}));
var producers = Enumerable
.Range(1, 5)
.Select(producerNumber =>
Task.Run(async () =>
{
var rnd = new Random();
for (var i = 0; i < 10; i++)
{
var t = $"Message {i}";
Console.WriteLine($"Producing {t} on producer {producerNumber}");
await channel.Writer.WriteAsync(t);
await Task.Delay(TimeSpan.FromSeconds(rnd.Next(3))); …
Run Code Online (Sandbox Code Playgroud) 我有许多线程需要运行(大约160)创建文件,然后将它们复制到不同的地方:
'Files is basically a list of strings
'which is passed to a function that creates a file from a number of database fields
'when thats done it copies it to a number of places
For Each x In Files
Dim Evaluator = New Thread(Sub() API.Files.Create.Standard(x))
Evaluator.Start()
Next
Run Code Online (Sandbox Code Playgroud)
我想要它做的是触发160个左右的线程(带有许可者x),然后等待所有线程完成,然后继续执行程序的其余部分.