我正在为初学者读一本关于C#的书,而我正处于"理解价值观和参考资料"这一部分,但有一些我不理解的东西.我所看到的是,书籍试图向我解释这一点(我已经在Youtube的几个教程视频中看到了这一点),该类正被用来创建一个对象(? ?)班级.我已经阅读了整个前一章,其中也发生过这种情况,我不太明白它,假设在下一章中会更清楚.它没有变得更加清晰,所以我不认为继续直到我理解我之前解释过的东西的概念为止.
以下部分是本书的一部分:
请记住,要初始化引用变量(如类),可以创建类的新实例并将引用变量分配给新对象,如下所示:
Circle c = new Circle(42);
Circle copy = new Circle(99);
//Circle refc = c;
...
copy = c;
Run Code Online (Sandbox Code Playgroud)
我可以用这个例子中的代码做什么,为什么它很方便?示例+解释将非常受欢迎.提前致谢!
我仍然是高级编程语言编程的初学者,所以我不知道这是否是一个简单的解决方案,但无论如何我很乐意学习.我在C#中编写了一个小程序报警程序,让用户输入报警需要关闭的秒数.它工作得很好,但用户需要提供的输入必须是一个数字.当用户输入任何形式的文本时,程序崩溃.现在,如何阻止用户输入文本,调用函数或在用户执行其他操作时,而不是刚刚崩溃的程序?
这是我现在的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
class Alarm
{
public static void play()
{
int sec;
sec = Convert.ToInt16(Console.ReadLine());
for (int i = 0; i < seconds; ++i)
{
System.Threading.Thread.Sleep(1000);
}
for (int i = 0; i < 10; i++)
{
Console.Beep();
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 也许这是一个非常愚蠢的问题,但我正在阅读的书指示我编写一段代码,使用算法对向量中的元素进行加扰和排序.为此,本书告诉我使用主C++库中的算法库.好吧,到目前为止,我理解它,但在编写代码之后,我想看看如果我从代码的顶部删除这个库会破坏什么,并且让我惊讶的是一切仍然有用.
这是我正在谈论的代码.当我从代码的顶部删除"#include算法"时,没有任何中断.怎么会这样?不使用这个库时,'random_shuffle'部分不应该被破坏吗?
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
vector<int>::const_iterator iter;
cout << "Creating a list of scores.";
vector<int> scores;
scores.push_back(1500);
scores.push_back(3500);
scores.push_back(7500);
cout << "\nHigh Scores:\n";
for (iter = scores.begin(); iter != scores.end(); ++iter)
{
cout << *iter << endl;
}
cout << "\nFinding a score.";
int score;
cout << "\nEnter a score to find: ";
cin >> score;
iter = find(scores.begin(), scores.end(), score);
if (iter != scores.end())
{
cout …Run Code Online (Sandbox Code Playgroud) 我现在一直在寻找许多网站上的答案,但所有工作答案仅适用于richTextbox,而我正在使用普通的文本框.我正在尝试将文本框的内容保存到选择的文件中,但由于某种原因文件没有保存,我不知道问题是什么.这是"保存"菜单项的代码:
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog ofd = new SaveFileDialog();
ofd.Title = "Save";
ofd.Filter = "Txt Documents (.txt)|*.txt|All files (*.*)|*.*";
if (ofd.ShowDialog() == DialogResult.OK)
{
try
{
//I don't know what to make of this, because clearly this doesn't work
File.WriteAllText(@"./TestFile.txt", MainTextbox.Text);
}
catch (Exception ex)
{
MainTextbox.Text += ex;
}
}
}
Run Code Online (Sandbox Code Playgroud)
没有错误.
我无法想出以下内容.如何使用以下代码将电子邮件发送到多个电子邮件地址?
using System.Net;
using System.Net.Mail;
var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";
var smtp = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
{
smtp.Send(message);
}
Run Code Online (Sandbox Code Playgroud) 请参阅本文底部的代码.它应该在列表框中添加"3",然后在一秒钟后添加"2",然后在一秒钟后添加"1",然后运行程序的主代码.但是,一旦我执行程序,它就会保持3秒钟的空白,然后显示所有的3,2和1,之后所有代码都会直接启动.我想在视觉上看到每个数字都显示一秒延迟.我该怎么做呢?
private void Main()
{
countdown();
//Main Code
}
private void countdown()
{
listBox1.Items.Clear();
listBox1.Items.Add("3");
System.Threading.Thread.Sleep(1000);
listBox1.Items.Add("2");
System.Threading.Thread.Sleep(1000);
listBox1.Items.Add("1");
System.Threading.Thread.Sleep(1000);
listBox1.Items.Clear();
}
Run Code Online (Sandbox Code Playgroud)