小编Tre*_*ent的帖子

通过参考传递只是遗产吗?

也许这对我来说有点天真,但我似乎无法找到/想到"通过引用传递"的体面用例.更改不可变字符串(正如其他一些Q/As所提到的)通常是可以避免的,返回多个变量通常可以通过返回元组,列表,数组等来更好地处理.

在我看来,MSDN上例子很糟糕; 我只是在Square方法中返回一个值,而不是将其声明为void.

在我看来,它似乎是C#的一个遗留部分,而不是它的一个组成部分.有人比我更聪明可以尝试解释为什么它仍然存在和/或一些实际可行的实际用例(即几乎在每种情况下都可以避免更改不可变字符串).

c# pass-by-reference

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

通过反射访问main方法中的局部变量

只是玩弄Java反射,我想我大部分时间都掌握了它。我从这个问题/答案中了解到,在大多数情况下,我仅限于静态变量。如果我有该类的实例,则可以访问非静态变量,这确实有意义,我得到了很多。

说我有以下两节课:

public class A
{
    private static int _staticInt;

    public static void main(String[] args)
    {
        B instanceOfB = new B();
    }
}

public class B
{
    private int _nonStaticInt;
    public Game() {}
}
Run Code Online (Sandbox Code Playgroud)

我知道如何访问_staticInt,这不是问题。我的理解是,我可以以相同的方式获得Fieldfor 。从其他研究(javadocs,trails等)中,我收集到需要一个实例才能获得的值。_nonStaticIntField f = B.class.getDeclaredField("_nonStaticInt");B_nonStaticInt

所以我的问题;由于main是静态的,因此可以访问instanceOfB以便访问的值_nonStaticInt吗?我认为这是不可能的,但是我认为在放弃这个想法之前,最好先咨询比我自己知识渊博的人。

java reflection

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

C#Singleton模式

我在很多地方使用单例模式,有时构造函数什么都不做,有时候它会初始化.我想知道是否有办法设置一个抽象类来最小化我的代码重复,即我不需要public static readonly Singleton _Instance = new Singleton();在每个单独的类中,只需要一个基类.我理解接口不是一种选择.

我尝试过使用以下内容(取自此处);

public abstract class Singleton<T> where T : new()
{
    static Singleton()
    {
    }

    private static readonly T _Instance = new T();

    public static T Instance
    {
        get { return _Instance; }
    }
}
Run Code Online (Sandbox Code Playgroud)

这个问题是我不能覆盖我需要初始化的情况的构造函数.我正在努力做甚么可能吗?或者我应该继续做我正在做的事情,而不是担心基础单身人士课程?

c# singleton

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

低带宽网站设计

不久之后,我们公司的一位初级开发人员负责创建一个网站,供用户在场外输入时间表.大多数情况下,这是用于居住在海外且带宽有限的人员(它是卫星互联网,所以我们已经看到500毫秒 - 600毫秒的响应时间,通常只有10KB/s或更少,包括10% - 20%的间歇性丢包).
所以这是一个充满挑战的情况......

最近我的任务是帮助大三学生提高网站的速度和功能,主要是为了我自己的利益,因为我通常是桌面开发者.我注意到的一件事是该网站正在使用MultiView,我想知道这是否是最佳方法.我可以看到推理; 下载整个网站一次,然后来回查询,根据需要显示/隐藏各种视图.除了它似乎没有那么顺利.

95%的操作需要服务器运行; 即添加新的时间表 - 需要告诉服务器,服务器又在数据库中创建一个新条目.当服务器完成后,它似乎会导致客户端再次下载整个网页,这显然会适得其反.

所以我的问题如下;
鉴于上述情况,这是预期的行为吗?即一旦服务器完成了它的行动,是否应该重新下载整个网页?如果是这样,这是最适合这种情况的方法吗?为各种功能(时间表/休假/等)设置较小的单个页面会更好吗?

我知道这可能是基于意见,但任何想法或帮助都非常感谢; 为了我们的利益.

c# asp.net

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

实体框架自定义SQL查询返回泛型类型

我正在尝试创建一个通用的报告系统,以便我可以动态地向我的程序添加报告,而不是每次我必须添加报告时都发布新版本的程序.
目前,我已部分工作;
我的自定义报告SQL与报告名称一起存储在表中.报告名称用于用户单击的按钮,当他们单击按钮时,我希望SQL执行并绑定到gridview,因此它尽可能通用.

这似乎是麻烦来临的地方.获取SQL并执行它很好,但是将它绑定到gridview似乎是不可能的,我只得到一个名为Column的列,它显示1行,其值为System.Object.

我认为问题是因为我从多个表中返回数据,即

SELECT c.CertificateName, e.EntityName, 
       ce.CertificateDate, ce.CertificateExpiry, ce.CertificateNumber 
FROM FCERTSTest.dbo.CertificateEntries ce 
INNER JOIN FCERTSTest.dbo.Certificates c 
ON c.CertificateID = ce.Certificate_ID 
INNER JOIN FCERTSTest.dbo.Entities e 
ON e.EntityID = ce.Entity_ID 
WHERE FirstNotificationSent = '1'
Run Code Online (Sandbox Code Playgroud)

我正在使用

using (DBContainer db = new DBContainer())
{
    grid.DataSource = db.Database.SqlQuery<dynamic>(SQLCommand).ToList();
}
Run Code Online (Sandbox Code Playgroud)

我试着更换dynamicobject,并得到了同样的问题.我明白,最好的解决办法是有一个自定义类和替换dynamic与自定义类,但后来我失去了它的好处是通用为不同的报表可能不会返回相同的结果,我需要一个新的自定义类...

sql entity-framework xtragrid

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

StreamWriter创建目录而不是文件

这里真的很困惑.我正在运行Windows 7和管理员帐户,但由于某种原因,以下代码正在崩溃;

public static readonly string Report = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "report.csv");
StreamWriter sw = new StreamWriter(Report, true);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误;

访问路径'C:\ Users\Trent\Desktop\report.csv'被拒绝.

然后,当我在桌面上看时,我有一个名为"report.csv"的文件夹而不是文件......
我知道它可能是非常基本的东西,但我不知道它是什么,有人有任何想法吗?

.net c# streamwriter

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

接受Enum比较的方法

我确信这可能已被问到,但我似乎无法找到正确的答案......可能只是使用了错误的搜索条件.无论如何,我有以下代码;

if (e.Menu.Id.Equals(SchedulerMenuItemId.AppointmentMenu) ||
    e.Menu.Id.Equals(SchedulerMenuItemId.AppointmentDependencyMenu))
{ ... }
Run Code Online (Sandbox Code Playgroud)

对我来说似乎有点多余/重复.我不能使用按位OR,因为枚举没有标记为Flag.我想这是因为定义了71个枚举值,这有点超出了Flag选项......

可能我可以做一个转换,并让案件"通过",这可能是一个更清洁......

有没有其他方式进行比较,如上面的(考虑到可扩展性和可读性),它可能不仅仅是2次比较.

c# enums

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

左外连接不能按预期工作

也许是因为今天是星期五,我只是想的没那么直,但是我希望(并且正在尝试得到)以下查询输出所有用户,NULL如果没有时间表,则在EndDate列中使用。相反,我只会得到具有时间表的用户。

SELECT     Users.Name, Timesheets.EndDate
FROM       Users 
LEFT OUTER JOIN
           Timesheets ON Users.idUser = Timesheets.id_User
WHERE     (Timesheets.EndDate = CONVERT(DATETIME, '2014-08-15 00:00:00', 102))
Run Code Online (Sandbox Code Playgroud)

最终目标是找到在给定时间内尚未创建时间表的所有用户。

sql

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