标签: using

C#CA2000:使用FileStream/XmlTextReader在丢失范围之前处置对象

我有很多像这样的代码:

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)

c# dispose using ca2000 ca2202

8
推荐指数
2
解决办法
9454
查看次数

使用eclipse进行Weblogic远程调试

我的Weblogic安装在Red Hat OS机器上.

在startWebLogic.sh中我添加了这一行JAVA_OPTIONS =" - Xdebug -Xnoagent -Xrunjdwp:transport = dt_socket,address = 8888,server = y,suspend = n%JAVA_OPTIONS%"

当我尝试从Eclipse连接时,我收到"无法连接到远程VM.连接被拒绝.连接被拒绝:连接"消息.

你能告诉我哪里可能出错吗?

eclipse debugging weblogic using

8
推荐指数
1
解决办法
4万
查看次数

在c#中使用Linq替换字符串


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)

linq string replace using

8
推荐指数
1
解决办法
4万
查看次数

C++在一个类中使用了什么意思?

在类定义中使用是什么意思?

class myClass {
public:
  [...]
  using anotherClass::method;
};
Run Code Online (Sandbox Code Playgroud)

c++ language-features using

8
推荐指数
2
解决办法
5614
查看次数

"使用"vs [DllImport]?

我想知道什么是最顶级声明的引用,为什么我们仍然需要使用DllImport?我在说C#.

c# pinvoke using dllimport

8
推荐指数
2
解决办法
6437
查看次数

尝试/最后阻止vs调用dispose?

这两个代码示例之间是否有任何区别,如果没有,为什么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块确实不会花费太多精力.我知道整个事情可能包含在一个更大的尝试块中但是,对我来说似乎是多余的.

c# dispose using try-catch streamwriter

8
推荐指数
3
解决办法
9644
查看次数

Rust"use"与C++"using namespace"

在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)

namespaces using std rust

8
推荐指数
1
解决办法
2136
查看次数

SSH.Net SftpClient:我需要在使用块内调用断开连接吗?

在这样的代码中

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() 调用是必要的还是会使用块(处置/关闭/任何)自动关闭连接?

idisposable using disconnect ssh.net

8
推荐指数
1
解决办法
657
查看次数

函数中有多个using指令

我不想在给定的函数中包含整个命名空间,而只想包含我将要使用的东西,例如:

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 ...;)?

c++ syntax using

8
推荐指数
1
解决办法
1675
查看次数

哪个 C++ 编译器对此代码有错误?

以下内容由 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)

c++ inheritance using language-lawyer

8
推荐指数
0
解决办法
78
查看次数