这是一个理论上的问题,我正在查看其他人的代码(如下),我的简单解决方案是在 linq 之外实例化集合,但我猜在某些情况下我想实例化查询中的对象,并且也许仅在选择的元素上。这是一个简化的例子,说明这是如何完成的(糟糕)。
var pods = (from n in ids
where new Node(Convert.ToInt32(n)).HasValue("propertyName")
select new
{
Id = Convert.ToInt32(n),
Url = new Node(Convert.ToInt32(n)).Url,
Name = new Node(Convert.ToInt32(n)).Title()
}).ToList();
Run Code Online (Sandbox Code Playgroud)
无关注意:在这种情况下,Node 构造函数正在从内存缓存中获取数据。
如何改进此示例以仅使用 linq 实例化每个对象一次?
干杯。默里。
我的源代码(如下)正在生成错误 CS0563,因为我的 CombinedJobs 运算符+(请参阅源代码中的“//Step 5:...”)中的两个参数都被列为 Job(而不是 int、double 等)。我该如何更改此代码以消除此错误?此代码是为了响应下面列出的分配。
\n\n任务:
\n\n“为 Harold\xe2\x80\x99s Home Services 设计一个 Job 类。该类包含四个数据字段\xe2\x80\x94Job\n描述(例如,\xe2\x80\x9cwash windows\xe2\x80\x9d)、时间完成作业的小时数(例如,\n3.5)、作业的每小时费率(例如,25.00 美元)以及作业的总费用\n(每小时费率乘以小时数)。包括获取和设置每个作业的属性字段,\n总费用\xe2\x80\x94 除外,该字段为只读,并且每次\n设置每小时费用或\n小时数时都会计算其值。重载 + 运算符,以便可以\n创建两个作业添加。两个作业的总和是一个新作业,其中包含两个\原始作业的描述(由 \xe2\x80\x9cand\xe2\x80\x9d 连接)、原始作业的时间总和(以小时为单位),以及\ “原始作业的每小时平均费率。编写一个 Main() 函数,\n演示所有方法都能正常工作。将文件另存为 DemoJobs.cs。”
\n\n来自:Microsoft\xc2\xae Visual C#\xc2\xae 2008,面向对象编程简介,3e,Joyce Farrell
\n\n源代码:
\n\nusing System;\n\n//Step 1: Creating the Job class and designating its fields\n\n public class Job\n\n {\n\n private string jobDescription;\n\n private int jobTotalTime;\n\n private double jobRate;\n\n private double jobTotalFee;\n\n\n//Step 2: Using the \'this\' object will allow me to designate values for \n\n//"this" instantiation of …Run Code Online (Sandbox Code Playgroud) 我有一个关于在一个方法中作为参数传递的类中实例化java中的新对象的查询,例如:
void myMethod(Class aReceived){
object = new aReceived // object will be a superclass of aReceived
}
Run Code Online (Sandbox Code Playgroud)
我已经看到使用Objective-C在几行中完成了这一点,但我不确定它在java中是如何工作的.
你能帮我吗?
提前致谢 ;)
我在项目的主要表单中添加了一个 notifyIcon。我在项目中有其他表单,我希望能够使用 notifyIcon 虽然这证明很困难。在多个表单之间使用 1 notifyIcon 的最佳方法是什么?我读了一个关于不将它添加到表单而是在它自己的类中实例化它的线程,这对我来说毫无意义。想法?
假设外部类中有一个嵌套类; 这个嵌套类可以在其自身内实例化外部类的实例吗?
如果外部类在其自身内实例化一个内部类的实例,而该实例又在内部类中实例化外部类的实例,这是否会导致无限递归?
我有一个错误的看法,即a中的template函数class只有在被调用时才被实例化.请参阅以下简单代码:
template<typename T>
struct A
{
T *p;
T& operator * () { return *p; }
};
int main ()
{
A<int> ai; // ok
int i = *ai; // works fine
A<void> av; // compiler complains even "*av" is not called
}
Run Code Online (Sandbox Code Playgroud)
在声明时A<void>,编译器错误如下:
error: forming reference to void
Run Code Online (Sandbox Code Playgroud)
我试图void在模板外部专门化函数,如下所示:
template<>
void A<void>::operator * () {}
Run Code Online (Sandbox Code Playgroud)
但它没有帮助,并给出错误:
error: no member function ‘operator*’ declared in ‘A<void>’
Run Code Online (Sandbox Code Playgroud)
有没有办法用C++ 03解决这个问题?
在C++中,如果你实例化一个类的对象,那么对于每个对象,都会为新对象复制所有类的方法吗?
我试图指出一个具有两个不同对象的类的方法,但是我遇到指向成员的指针的问题.
任何的想法?
这是工作:
$x = new classname();
Run Code Online (Sandbox Code Playgroud)
这是行不通的:
$class = "classname";
$x = new $class();
Run Code Online (Sandbox Code Playgroud)
我得到的错误是“找不到类类名”。PHP 版本是 5.4.22。有任何想法吗?据我对这个主题的研究,这正是使用变量实例化类所需要做的。
我的实际测试代码(复制+粘贴),$build = 1:
//include the update file
$class="db_update_" . str_pad($build, 4, '0', STR_PAD_LEFT);
require_once(__ROOT__ . "/dbupdates/" . $class . ".php");
$x = new db_update_0001();
$xyz="db_update_0001";
$x = new $xyz();
Run Code Online (Sandbox Code Playgroud)
类定义:
namespace dbupdates;
require_once("db_update.php");
class db_update_0001 extends db_update
{
...
}
Run Code Online (Sandbox Code Playgroud)
我刚刚发现我的编辑添加了
use dbupdates\db_update_0001;
Run Code Online (Sandbox Code Playgroud)
到文件。这就解释了为什么“new db_update_0001();” 工作中。我想要实现的是动态包含存储在 dbupdates/db_update_0001.php 等文件中的数据库更新
问候,亚历克斯
我有一个通用包:
generic
Size : Positive;
package Foo is
type Unbounded_Sized_Array is Array(1..Size) of Unbounded_String;
type My_Type is
record
My_Array : Unbounded_Sized_Array;
--other stuff
end record;
end Foo;
Run Code Online (Sandbox Code Playgroud)
我需要在另一个包中的包级别声明它:
package Bar is
package Dynamic_Foo is new Foo(Count);
--other stuff
end Bar;
Run Code Online (Sandbox Code Playgroud)
问题是我不知道Count是什么,直到我执行一些代码(它是给定目录中的文件数)并且我不确定如何推迟Dynamic_Foo的实例化直到完成之后.或者即使这是可以在Ada中完成的事情.我可以制作一个链表类型,但我真的不愿意,因为它的大小/长度应该在它启动后保持不变.
我学会了用 Python 编程,现在刚刚学习 C++,所以如果我使用的术语不是传统的(也没有comp. sci. 教育或背景),我深表歉意。
我正在尝试用 C++ 构建一个神经元。权重通常作为数组传递。在实例化神经元时,我需要传递一组权重。我一直试图让神经元对象只引用指针,这样我就不必复制,但我一直做错事。有人可以更改此代码,这样我就不会复制数组,然后解释您做了什么,为什么要这样做?
class Neuron {
private:
double bias;
int num_weights;
double weights[];
public:
Neuron(double*, int, double);
double forward_prop(double[]);
};
Neuron::Neuron(double weights[], int num_weights, double bias) {
this->num_weights = num_weights;
this->bias = bias;
// rotate through weights pointer and reassign to object attribute 'weights'
for (int i=0;i<this->num_weights;i++) {
this->weights[i] = weights[i];
}
// TODO: delete pointer
}
double Neuron::forward_prop(double values[]) {
double output = this->bias;
for (int i=0; i < this->num_weights; i++) {
output …Run Code Online (Sandbox Code Playgroud)