标签: using

帮助我理解MY`Using`和`DataContext`

有人可以向我解释下面的内容.首先是我如何调用该方法,第二位是LINQ方法.

我的好奇心源于这样一个事实,即context如果我不批评该using部分,我会收到错误.

为什么?我显然不完全明白usingcontext's.我想更好地理解这一点.

Guid workerID = new Guid(new ConnectDAL.DAL.Security().GetUserIDByUserLogin(HUD.CurrentUser));

        var myMembers = BLLCmo.GetAllMembers(workerID);
        if (myMembers.Rows.Count != 0)
        {
            dgvMyMembers.DataSource = myMembers;
        }
        else
        {
            var allMembers = BLLCmo.GetAllMembers();
            dgvMyMembers.DataSource = allMembers;
        }




    internal static CmoDataContext context = new CmoDataContext();

    public static DataTable GetAllMembers()
    {
        DataTable dataTable;

        //using (context)
        //{
            var AllEnrollees = from enrollment in context.tblCMOEnrollments
                               select new
                                       {
                                           enrollment.ADRCReferralID,
                                           enrollment.ClientID,
                                           enrollment.CMONurseID,
                                           enrollment.CMOSocialWorkerID,
                                           enrollment.DisenrollmentDate,
                                           enrollment.DisenrollmentReasonID,
                                           enrollment.EconomicSupportWorkerID,
                                           enrollment.EnrollmentDate
                                       };

            dataTable = AllEnrollees.CopyLinqToDataTable();
        //} …
Run Code Online (Sandbox Code Playgroud)

c# linq datacontext using linq-to-sql

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

"using"命名空间和声明命名空间有什么区别?

有人可以告诉我有什么区别

using namespace android;
    .... 
Run Code Online (Sandbox Code Playgroud)

namespace android {
    ....
}
Run Code Online (Sandbox Code Playgroud)

我发现Android源代码中的几乎所有.cpp文件都使用第二个.cpp文件.
另外,如果我想在我自己的项目中包含一些使用第二种类型的文件,我是否namespace android{...}也需要使用?
因为如果我不这样做,编译器会在调用包含文件的方法时报告错误.或者我需要在方法调用之前添加任何前缀?

c++ namespaces terminology using using-directives

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

SaveFileDialog在c#中使用streamwriter出现问题

我想从streamwriter中的内容中使用bild保存文件,但是在此代码中

SaveFileDialog savefile = new SaveFileDialog();
                savefile.FileName = "unknown.txt";
                savefile.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*|";
                if (savefile.ShowDialog() == DialogResult.OK)
                {
                    using (StreamWriter sw = new StreamWriter(savefile.FileName, false, System.Text.Encoding.Unicode))
                    sw.WriteLine("Test line");
                    sw.WriteLine("Test line2");
                    sw.WriteLine("Test line3");
                }
Run Code Online (Sandbox Code Playgroud)

在行sw.WriteLine("Test line2"); sw.WriteLine("Test line3");,是错误,sw不存在!

但我很少使用代码

using (StreamWriter sw = new StreamWriter("\unknow.txt", false,System.Text.Encoding.Unicode)) sw.WriteLine("Test line"); sw.WriteLine("Test line2"); sw.WriteLine("Test line3");

一切正常!哪里有问题?谢谢 !

c# using

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

在"使用"块中,OracleConnection已关闭

在"使用"块中,如果在catch语句中发出System.Environment.Exit(0),则关闭OracleConnection?

例:

        OracleConnection oracleConnection = getOracleConnection();

        using (oracleConnection)
        {

            try
            {

                oracleConnection.Open();
                OracleCommand cmd = getApplicantsCmd(oracleConnection);
                OracleDataReader rdr = cmd.ExecuteReader(); 

                List<Applicant> applicants = new List<Applicant>();
                while (rdr.Read())
                {
                    Applicant applicant = new Applicant();
                    applicant.email = (string)rdr["GOREMAL_EMAIL_ADDRESS"];
                    applicants.Add(applicant);                   
                }

                return applicants;

            }
            catch (Exception ex)
            {
                Console.WriteLine("Failure getting applicant records: " + ex.Message);
                System.Environment.Exit(0);
                return null;
            }
        }
Run Code Online (Sandbox Code Playgroud)

如果在查找记录时抛出异常,我希望执行停止.

有没有更好的方法来处理这个?

c# using try-catch exit oraclecommand

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

这可能是名称空间或类型别名吗?

我现在正在一个C#程序中工作,其中有一个类("GlobalConstants")只有全局常量,例如错误消息和返回值.其中大多数都是大枚举类型,因此代码中有很多地方我必须键入或读取看起来像这样的行...

case GlobalConstants.SubunitAssemblyFailureEnums.FOD_ERROR:
Run Code Online (Sandbox Code Playgroud)

所以我很乐意能够用简短的东西来缩写限定词,所以就是这样...

case gsf.FOD_ERROR:  
Run Code Online (Sandbox Code Playgroud)

有没有办法在C#中使用命名空间或类型别名?我试过了

using gsf = GlobalConstants.SubunitAssemblyFailureEnums;
Run Code Online (Sandbox Code Playgroud)

...但是编译器只是说"GlobalConstants.SubunitAssemblyFailureEnums是'类型',它在给定的上下文中无效"

编辑: 答案...是我的安排错了.我的文件结构如下...

using System;
using System.Collections;
using System.ComponentModel;

namespace  ****
{

    class ****
    {
        method*** {   }

        method*** {   }

       ... etc...


    } //end class
} // end namespace
Run Code Online (Sandbox Code Playgroud)

我尝试它的第一个地方是在命名空间指令之上,另一个是"使用".编译器不喜欢这样.然后我在课堂上试了一下,也不喜欢那样.但是我让它在命名空间指令和类定义之间工作得很好

c# alias using

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

使用语句最佳实践

这可能是一个愚蠢的问题,但由于我不能自己给出答案,我会在这里提出.

让我们在http处理程序中使用一个模块(Web应用程序是使用ASP.NET用C#编写的),并让这个模块实现IDisposable接口.然后一个常见的方法是使用如下模块:

using(var module = new ModuleName(param1, param2, param3))
{

}
Run Code Online (Sandbox Code Playgroud)

是否更好地将任何代码放在我们将仅在此using语句的主体内部或之前使用的变量中.在代码方面:

是第一种方法还是第二种方法更好(以及为什么):

第一种方法

using(var module = new ModuleName(param1, param2, param3))
{
    int a = Request.GetParam<int>("aNumber");
    string b = Request.GetParam<string>("bString");
    // and other parameters contained to the http request
}
Run Code Online (Sandbox Code Playgroud)

第二种方法

int a = Request.GetParam<int>("aNumber");
string b = Request.GetParam<string>("bString");
// and other parameters contained to the http request

using(var module = new ModuleName(param1, param2, param3))
{

}
Run Code Online (Sandbox Code Playgroud)

如果没有任何技术原因 - 这是基于意见的决定 - 我们应该更喜欢第二种方法的第一种方法,反之亦然,请告诉我,以便删除我的帖子.

c# using

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

在这种情况下如何使用decltype

这是我的代码:

class Test
{
private:
    SomeType a;
public:
    using TE = decltype(a.find("abc")->second);
    TE getElement(const string &) const;
};

Test::TE Test::getElement(const string & key) const
{
    return a.find(key)->second;
}
Run Code Online (Sandbox Code Playgroud)

在类中,函数可以返回a如上所述的元素.类型a.find(key)->second非常复杂,所以我不想全部输入.事实上,我甚至不知道如何输入它...

所以我想像decltype上面一样使用但失败了.这是错误:

错误C2227:' - > second'的左边必须指向class/struct/union/generic类型

c++ using decltype

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

使用声明的范围

我有一个方法,给我一个对象列表,例如

public IEnumerable<Person> GetPerson()
{
    using (myEntities ctx = new myEntities())
    {
        return ctx.Person.Where(x => x.Age < 50);
    }
}
Run Code Online (Sandbox Code Playgroud)

在其他地方我使用这种方法

public void Main()
{
   var pList = GetPerson();
   pList = pList.Where(x => x.Age < 40);

   Person Item = pList.FirstOrDefault(); //materialization here
}
Run Code Online (Sandbox Code Playgroud)

当我调用FirstOrDefault()select正在进行处理并且正在从数据库中检索数据时.

问题:是否using (myEntities ctx = new myEntities())达到了实现的范围?

一方面它是因为它管理数据库的选择/连接并且在物化时生成 - 另一方面它在方法之外被调用,并且可以在代码中的任何地方 - 在using指令之外

c# using

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

C ++-对“ using”关键字的说明

我需要对using有关类的关键字进行快速说明,因为我不确定我是否正确理解。

假设我有以下示例:

class B {
public:
    int var;
    int f(void);

};

class C : public B {protected: using B::var; };
Run Code Online (Sandbox Code Playgroud)

这是否意味着,而不是继承的变量varpublic从B类,C类,而不是继承此变量protected,离开将是唯一的公共变量int f(void);

另外,类C是否可以通过private: using B::var;在其主体内部继承而将变量作为私有变量继承?

public: using B::var;既然变量var已经在B类内部公开了,那有什么写法吗?

谢谢!

c++ using class

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

使用空的using语句来关闭C#中的一次性对象是一种好习惯吗?

我正在开发一个可以发送fttp请求的类,它有一个可以执行不同类型的ftp方法的实用工具方法:

private FtpWebResponse DoFttpRequest(Uri uri, NetworkCredential credentials, string method, string file = null)
{
    var request = (FtpWebRequest)WebRequest.Create(uri);
    request.Credentials = credentials;
    request.Method = method;

    if (!string.IsNullOrEmpty(file))
    {
        using (var stream = request.GetRequestStream())
        using (var writer = new StreamWriter(stream))
        {
            writer.Write(file);
        }
    }

    return (FtpWebResponse)request.GetResponse();
}
Run Code Online (Sandbox Code Playgroud)

如您所见,此方法执行ftp方法并将响应流返回给调用者.以下是使用此方法通过ftp将字符串内容写入文件的客户端方法:

public void WriteToFile(string path, string contents)
{
    var uri = new Uri(path);
    using (var ftpResponse = DoFttpRequest(uri, _credentials, Ftp.UploadFile, contents)) { }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,这里我使用空的using语句using (var ftpResponse = DoFttpRequest(uri, _credentials, Ftp.UploadFile, contents)) { } …

c# ftp dispose using webrequest

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