我有很多像这样的代码:
FileStream fs = File.Open(@"C:\Temp\SNB-RSS.xml", FileMode.Open);
using (XmlTextReader reader = new XmlTextReader(fs))
{
/* Some other code */
}
Run Code Online (Sandbox Code Playgroud)
这给了我以下代码分析警告:
CA2000 : Microsoft.Reliability : In method 'SF_Tester.Run()', object 'fs' is not disposed along all exception paths. Call System.IDisposable.Dispose on object 'fs' before all references to it are out of scope.
Run Code Online (Sandbox Code Playgroud)
如果我按照建议操作并将File.Open放在using语句中,我会得到:
CA2202 : Microsoft.Usage : Object 'fs' can be disposed more than once in method 'SF_Tester.Run()'. To avoid generating a System.ObjectDisposedException you should not call Dispose more than one time …Run Code Online (Sandbox Code Playgroud) 我的Weblogic安装在Red Hat OS机器上.
在startWebLogic.sh中我添加了这一行JAVA_OPTIONS =" - Xdebug -Xnoagent -Xrunjdwp:transport = dt_socket,address = 8888,server = y,suspend = n%JAVA_OPTIONS%"
当我尝试从Eclipse连接时,我收到"无法连接到远程VM.连接被拒绝.连接被拒绝:连接"消息.
你能告诉我哪里可能出错吗?
public class Abbreviation
{
public string ShortName { get; set; }
public string LongName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个缩写对象列表,如下所示:
List abbreviations = new List();
abbreviations.add(new Abbreviation() {ShortName = "exp.", LongName = "expression"});
abbreviations.add(new Abbreviation() {ShortName = "para.", LongName = "paragraph"});
abbreviations.add(new Abbreviation() {ShortName = "ans.", LongName = "answer"});
string test = "this is a test exp. in a para. contains ans. for a question";
string result = test.Replace("exp.", "expression")
...
Run Code Online (Sandbox Code Playgroud)
我希望结果是:"这是一个段落中的测试表达式,包含一个问题的答案"
目前我在做:
foreach (Abbreviation abbreviation in abbreviations)
{
test …Run Code Online (Sandbox Code Playgroud) 在类定义中使用是什么意思?
class myClass {
public:
[...]
using anotherClass::method;
};
Run Code Online (Sandbox Code Playgroud) 我想知道什么是最顶级声明的引用,为什么我们仍然需要使用DllImport?我在说C#.
这两个代码示例之间是否有任何区别,如果没有,为什么using存在?
StreamWriter writer;
try {
writer = new StreamWriter(...)
writer.blahblah();
} finally {
writer.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
VS:
using (Streamwriter writer = new Streamwriter(...)) {
writer.blahblah
}
Run Code Online (Sandbox Code Playgroud)
我的意思是在第二个例子中你真的应该把它放在try块中,所以添加finally块确实不会花费太多精力.我知道整个事情可能包含在一个更大的尝试块中但是,对我来说似乎是多余的.
在Rust中声明多个"use"语句被认为是不好的风格吗?我是一名C++程序员,最近开始尝试Rust.在我查看Rust代码时,我注意到的一件事是,在许多Rust程序use中,程序顶部会有一堆语句.来自C++,不鼓励using namespace std在制作头文件时特别使用它,但在我见过的大多数Rust程序中似乎并非如此.那么以下哪些琐碎的例子被认为是更好的Rust编程风格?如果您正在制作二进制程序而不是模块,它会改变吗?为什么?
use std::sync::Arc;
use std::sync::Mutex;
use std::thread::Thread;
use std::rand::random;
fn main() {
let mut vec: Vec<char> = (0u8..10).map(|i| i as char).collect();
let mut data = Arc::new(Mutex::new(vec));
for i in 1usize..10 {
let data = data.clone();
let thread = Thread::spawn(move || {
let mut data = match data.lock() {
Ok(guard) => guard,
Err(e) => panic!("{}, was poisoned", e)
};
data.push(random::<char>());
});
}
}
Run Code Online (Sandbox Code Playgroud)
或这个...
fn main() {
let mut vec: Vec<char> = (0u8..10).map(|i| i as …Run Code Online (Sandbox Code Playgroud) 在这样的代码中
using (var sftp = new SftpClient(_host, _userName, _password))
{
sftp.Connect();
// Do some work with sftp
sftp.Disconnect();
}
Run Code Online (Sandbox Code Playgroud)
sftp.Disconnect() 调用是必要的还是会使用块(处置/关闭/任何)自动关闭连接?
我不想在给定的函数中包含整个命名空间,而只想包含我将要使用的东西,例如:
void doStuff() {
using std::sin;
using std::cos;
...
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
有时这个列表会变长.我想将其缩小到以下内容(类似于变量声明的可能性):
void doStuff() {
using std::sin, std::cos;
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
我很惊讶地发现这是不可能的(error: expected ';' after using declaration).有没有理由为什么这样using定义?有没有其他方法可以简单地从给定的命名空间中包含许多函数(除了做using namespace ...;)?
以下内容由 gcc(12.1 和 trunk)编译良好,但 clang(14.0.0 和 trunk)在 上给出错误d.foo(),表示调用不明确。问题是,我应该向哪个编译器报告错误?
class Base
{
public:
void foo() {}
};
class Derived: public Base
{
public:
using Base::foo;
void foo() & {}
};
int main()
{
Derived d;
// Clang says here: error: call to member function 'foo' is ambiguous. Gcc,
// however, is fine with it
d.foo();
return 0;
}
Run Code Online (Sandbox Code Playgroud) using ×10
c# ×3
c++ ×3
dispose ×2
ca2000 ×1
ca2202 ×1
debugging ×1
disconnect ×1
dllimport ×1
eclipse ×1
idisposable ×1
inheritance ×1
linq ×1
namespaces ×1
pinvoke ×1
replace ×1
rust ×1
ssh.net ×1
std ×1
streamwriter ×1
string ×1
syntax ×1
try-catch ×1
weblogic ×1