通常在我处理LINQ序列时,我想将每个项目发送到返回void的方法,避免使用foreach循环.但是,我还没有找到一种优雅的方法来做到这一点.今天,我写了以下代码:
private StreamWriter _sw;
private void streamToFile(List<ErrorEntry> errors)
{
if (_sw == null)
{
_sw = new StreamWriter(Path.Combine
(Path.GetDirectoryName(_targetDatabasePath), "errors.txt"));
}
Func<ErrorEntry, bool> writeSelector =
(e) => { _sw.WriteLine(getTabDelimititedLine(e)); return true; };
errors.Select(writeSelector);
_sw.Flush();
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我编写了一个只返回true的lambda函数,我意识到Select方法将返回一个布尔序列 - 我将忽略该序列.然而,这看起来有点讽刺和下沉.有没有优雅的方法来做到这一点?或者我只是误用了LINQ?
谢谢.
我注意到日食JDT 使用void的基本类型.这可以被认为是正确的吗?
在C++中使用void没有参数的函数,例如:
class WinMessage
{
public:
BOOL Translate(void);
};
Run Code Online (Sandbox Code Playgroud)
是多余的,你不妨写一下 Translate();.
我,我自己通常都包括它,因为它在支持IDE显示的代码完成时有点帮助void,因为它确保了该函数绝对没有参数.
我的问题是,添加无void参数函数是一个好习惯吗?现代代码应该鼓励它吗?
它表示非静态变量不能用于静态方法.但是public static void main.如何?
我没有找到任何具有我的功能的具体需求来做这件事,是的,这是为了做作业.
所以我有:
public void reverseArray(int[] x) {
}
Run Code Online (Sandbox Code Playgroud)
前提条件:x.length> 0
事实上,我不能让函数返回任何东西,唯一的参数是数组让我感到难过.
我已尝试使用循环和递归,但我尝试过的所有内容似乎最终都会产生无限的函数实例.
我已经有了一个想法/建议使用另一个功能以及这一个,但是,如何递归使用原始目标超出了我的目前.
任何帮助表示赞赏.
我是C语言的初学者.任何人都可以使用示例详细解释main(),int main(),void main(),main(void),void main(void),int main(void)如何在C语言中工作?正如在我们使用void main()时所发生的事情以及当我在简单语言中使用int main()时发生的事情等等.
我知道,但无法理解它在做什么:
当我使用int main()返回0编写简单的hello world时,它仍然给出与使用void main()时相同的输出,那么它是如何工作的?它的应用是什么?
我有这个代码和GCC打印"什么!?".我怎样才能避免这种情况,因此虚空演员只有C的意思是"忽略孤独的'a;'"?
#include <iostream>
struct A {
template<typename T>
operator T() {
std::cout << "what!?";
}
};
int main() {
A a;
(void)a;
}
Run Code Online (Sandbox Code Playgroud) 我读了这篇MSDN文章:
...单位类型是指示缺少特定值的类型; 单元类型只有一个值,当没有其他值存在或需要时,它充当占位符...单元类型类似于C#和C++等语言中的void类型...
所以...好吧,我明白,单位类型是这样一种类型,它只有一个值().但我有一些问题:
我不明白为什么不在F#中使用void类型,比如C#和C++使用.
如果我看下表:
Type .NET Type Description
void Void Indicates no type or value.
Run Code Online (Sandbox Code Playgroud)
我看到F#确实有一个void类型.所以我不明白为什么需要单位类型; 看起来它与void非常相似.
我想它与功能语言范式有关,这就是为什么需要它,所以请...向我解释一下这个问题.
以下两种铸件有什么区别吗?
int a=10;
int *p=&a;
(void)p; //does not give any warning or error
Run Code Online (Sandbox Code Playgroud)
要么
(void *)p; //error: statement with no effect [-Werror=unused-value]
Run Code Online (Sandbox Code Playgroud)
什么时候遵守 gcc -Wall -Werror --std=c99 -pedantic
刚看到这个答案. (显然我误解了一些事情)