我有点像反射的新手.我希望有可能做我想做的事情.我一直在通过ProjectEuler学习语言,我有一个名为Problem的基类.每个PE问题都是一个单独的类,即Problem16.要运行我的计算,我使用以下代码:
using System;
using Euler.Problems;
using Euler.Library;
namespace Euler
{
static class Program
{
[STAThread]
static void Main()
{
Problem prob = new Problem27();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我现在已经完成了50个问题,我想创建一个循环来运行它们.我的基类问题有一个方法,它在文本文件中附加问题编号,答案和在每个类的默认构造函数中调用的执行时间.我可以手动更改所有50的函数调用,但是当我继续完成问题时,这将最终成为很多工作.
我宁愿以编程方式来做.我希望这个伪代码成为现实:
for (int i = 1; i <= 50; i++)
{
string statement = "Problem prob = new Problem" + i + "();";
// Execute statement
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用我在开发Web应用程序时可以考虑的最强大的OOP,但是在使用代码创建事件处理程序时,我遇到了问题.我确信这是一个相当简单的解决方案,我不断放弃,但我不知道下一步该尝试什么.下面是我一直在玩的一些测试代码,只是想按下按钮去做一些事情.
(想象一下,"int i"这一行有一个断点)
Button b = new Button();
b.Text = "Do Something";
b.Attributes.Add("runat", "server");
b.Attributes.Add("OnClick", "click");
form1.Controls.Add(b);
private void click(object sender, EventArgs e)
{
int i;
}
Run Code Online (Sandbox Code Playgroud)
由于这是我的Page_Load创建的一个新按钮,我不能只是对XHTML进行硬编码.调试永远不会到达我的断点.CheckBoxes也没有取得任何成功.
我目前正在尝试创建一个使用只读访问权限的Web应用程序,以允许用户从我们的数据库下载大文件.有问题的表中有400,000条记录,导出时会生成50 MB的.csv文件.
在SQL服务器上运行语句"SELECT*FROM [table]"需要大约7秒,而从我的Web应用程序(托管在不同服务器上)执行此操作大约需要33秒.这是将所有数据读入System.Data.SqlClient.SqlDataReader对象.
我的问题是我无法将我的SqlDataReader转换为.csv文件.将SqlDataReader的每一行转换为字符串并逐行将该字符串输出到文件大约需要2个小时,这是不可接受的.下面是我用来在Web应用程序的服务器上创建文件的代码:
while (rdr.Read())
{
string lineout = "";
for (int index = 0; index < rdr.FieldCount; index++)
lineout += rdr[index].ToString().Replace(',', ' ') + ',';
write(lineout, filename); //uses StreamWriter.WriteLine()
}
Run Code Online (Sandbox Code Playgroud)
一定有更好的方法.我环顾四周,看到了很多建议,基本上建议你做上面的事情来创建一个文件.这适用于较小的表,但不是我们每天使用的两个非常大的表.任何人都可以给我一个正确的方向吗?
我正在用C++从头开始构建一个BigInt类,但有些事情让我感到疯狂:我的XOR工作不正常,我不明白为什么.我希望有人可以启发我.以下是一个最小的工作示例:
class BigInt
{
private:
bool pos;
int size; // Number of binary digits to use
short compare(BigInt input);
public:
BigInt(long long input, int inSize) { pos = true; size = inSize; }
};
short BigInt::compare(BigInt input)
{
// Partial compare function for minimal working example
// Return:
// 1: (*this) > input
// 0: (*this) == input
// -1: (*this) < input
string a = (*this).toDecimal(), b = input.toDecimal();
bool c = (*this).size > input.size, d = (*this).pos ^ …Run Code Online (Sandbox Code Playgroud)