问题列表 - 第30970页

如何在C#中实现对数组执行的"函数"

来自Matlab中的非OO背景,我正在寻求以最佳实践方式执行我习惯的一些操作来进行C#.

我有一个类,它从一个源中导入数据,并将其格式化为一个int数组.我想要对这个数组执行一些操作.为了简单起见,我想说我想取所有值的平均值.我看到它的方式,我有三个选择:

  • 该数组是MyClass的一部分,因此我可以扩展MyClass以返回MyArray的平均值.double arrayAverage=MyClass.ArrayAve;
  • 我可以开发一个静态类,让我可以访问平均值 double arrayAverage= zotty.arrayMath.average(MyArray);

  • 显然我可以通过某种方式继承或接口,以便我创建一个专门用于执行此类操作的类,然后Id可以通过实例化这个新类并将其传递给数组来访问:

OperatorClass oc = new OperatorClass();

oc.data = MyClass.MyArray;

double arrayAverage = oc.ArrayAverage();

扩展类似乎有风险,因为它还负责导入和格式化数据.如果我将所有数据处理添加到它中,我可能变得非常大,并且对于其他人来说,添加和与我一起工作并不是直截了当的.

未来的代码将需要在阵列上进行更复杂的操作,我不知道它们目前会是什么.我将在未来的程序中使用一些基本操作,这些操作作为静态类的一部分很有用 - 但复杂的操作将是多余的.

用于执行数据处理的单独类允许导入/格式化类保持隔离.它可以提供一般功能和特定功能,但代价是在代码中实例化另一个变量,这在我看来有点凌乱.

如果你对此事有任何想法,我会感激一些意见!

c# oop function static-libraries

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

codeigniter文件上传 - 可选?

我确信这很简单,但我看不到如何使用CI可选上传文件.

如果将文件输入框留空,则会显示错误"您没有选择上载文件".

我希望它是可选的原因是我的表单编辑了目录类型列表,每次编辑列表时我都不需要上传图像.

有没有办法删除文件类上的"必需"错误处理

upload codeigniter file

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

有没有办法将Java注释作为参数传递?

伙计们有一种方法可以将Annotation作为直接参数传递(而不是通过执行所有反射开销)?例如,在下面的代码中,我有一个包含int值的注释Number,我想作为参数传递给addImpl方法,我该怎么做(除了通过反射)?

代码片段:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
public @interface Number {
    int value();
}

public void add(int x2) {
    addImpl(@Number(value = 10) lol, x2);
}

public void addImpl(Number a, int b) {
    System.out.println(a.value() + b);
}

public static void main(String[] args) {
    new TestClass().add(3);
}
Run Code Online (Sandbox Code Playgroud)

java annotations

26
推荐指数
2
解决办法
2万
查看次数

什么是激活存储过程368次更新数据库的好方法?

我正在研究一个.NET组件,它从数据库中获取一组数据,对该组数据执行一些业务逻辑,然后通过类似的存储过程更新数据库中的单个记录spUpdateOrderDetailDiscountedItem.

对于小型数据集,这不是问题,但是当我有一个非常大的数据集需要迭代368个存储过程调用来更新数据库中的记录时,我意识到我遇到了问题.一位高级开发人员查看了我的存储过程代码并说它看起来很好,但现在我想探索一种更好的方法来将"批量"数据发送到数据库.

我有哪些选项可以批量更新数据库?这可能与存储过程有关吗?我还有其他选择吗?

我不会选择安装完整的ORM,但任何建议都表示赞赏.


其他背景资料:

我们当前的数据访问模型是在5年前构建的,所有对db的调用当前都是通过模块化/静态函数执行的,其名称ExecQueryGetDataTable.我不确定我是否需要保持在该模型中,但是我必须提供一个非常好的理由来超出我们当前的DAL以进入数据库.

另外值得注意的是,在谈到CRUD操作和数据库时,我还是比较新的.我更喜欢在.NET代码中玩/工作,但数据必须存储在某个地方,对吗?


存储过程内容:

ALTER PROCEDURE [dbo].[spUpdateOrderDetailDiscountedItem] 
    -- Add the parameters for the stored procedure here
    @OrderDetailID decimal = 0,
    @Discount money = 0,
    @ExtPrice money = 0,
    @LineDiscountTypeID int = 0,
    @OrdersID decimal = 0,
    @QuantityDiscounted money = 0,
    @UpdateOrderHeader int = 0,
    @PromoCode varchar(6) = '',
    @TotalDiscount money = 0

AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with …
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net sql-server stored-procedures

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

计算flv视频文件长度?使用纯PHP

什么是使用PHP计算flv文件长度的最佳方法,如外部依赖关系,如ffmpege,因为客户端站点在共享主机上运行,​​itry http://code.google.com/p/flv4php/,但它提取元数据而不是所有视频都包含元数据?

php flv

6
推荐指数
2
解决办法
4104
查看次数

正确的方法来定义宏\ etc\ie在latex中

这篇文章中,作者讨论了使用\ @在完全停止之后放置正确的间距,例如先生等等.

宏建议

\newcommand\etc{etc\@ifnextchar.{}{.\@}}
Run Code Online (Sandbox Code Playgroud)

因为(\etc more text)它产生的情况不是很完美(etc.more text).

我见过很多作者都制作了自己的\etc宏版本,主要是变体etc.\.

对于什么是宏\etc,\ie,\etal,\eg产生在大多数情况下最好的结果?

一般来说,这个品味太过个人化吗?

latex

36
推荐指数
4
解决办法
3万
查看次数

使用Win32 API更新许多Windows的Z顺序

场景是我有一个顶级窗口的窗口句柄列表,我想转移它们,所以它们按我选择的z顺序排列.我开始通过迭代列表(我希望最后的窗口最后一个),调用SetForegroundWindow每个.这似乎在某些时候有效,但并非总是如此,当我在每次通话之间稍微暂停时,有所改善.

有一个更好的方法吗?


编辑:

它看起来像BeginDeferWindowPos/ DeferWindowPos/ EndDeferWindowPosroute是要走的路.但是,我似乎无法让它一次使用多个窗口.当我将窗口列表限制为单个窗口时,它可以正常工作.当列表有多个窗口时,它似乎只能获得其中一个窗口.这是我正在做的伪代码:

HWND[] windows;
HWND lastWindowHandle = 0;
HDWP positionStructure = BeginDeferWindowPos(windows.length);

for (int i = 0; i < windows.length; i++)
{
    positionStructure = DeferWindowPos(positionStructure, windows[i], 
        lastWindowHandle, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}

EndDeferWindowPos(positionStructure);
Run Code Online (Sandbox Code Playgroud)

我确定这是一个小/明显我在这里失踪的东西,但我只是没有看到它.

windows winapi z-order

7
推荐指数
2
解决办法
7132
查看次数

IMAGEM~1代表什么?

我在这里看到它:

cimg_snprintf(st_path,sizeof(st_path),"D:\\IMAGEM~1.%d\\VISUA~1\\BIN\\convert.exe",k);
Run Code Online (Sandbox Code Playgroud)

c++ windows

2
推荐指数
3
解决办法
121
查看次数

如何插入记录并同时锁定该行?

我正在使用配置为使用自治事务的Oracle存储过程插入一行.我想插入此记录,提交该事务,然后锁定新插入的记录,以便除了当前会话之外没有其他人可以修改它(在另一个事务中,显然,因为插入它的是自治的).

在我有机会之前,如何确保没有其他人锁定此新记录SELECT...FOR UPDATE

使用Oracle 10g.

sql oracle plsql locking

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

类对象的通用类型规范

我正在使用HashMap和下面显示的方法来跟踪类类型的更改侦听器.IDE正在发出警告

[rawtypes] found raw type: java.lang.Class
  missing type parameters for generic class java.lang.Class<T>. 
Run Code Online (Sandbox Code Playgroud)

需要指定什么类型的类来解决警告?

private HashMap<Class, Set<ChangeListener>> classChangeListeners;

/**
 * Adds a ChangeListener to the listener list for the specified class type. The class type
 * specified must be a subclass of {@link BusinessObject}.
 *
 * @param  <T>  the type of BusinessObject.
 * @param  cls  the class type.
 * @param  listener  the ChangeListener to be added.
 */
public <T extends BusinessObject> void addChangeListener(Class<T> cls, ChangeListener listener)
{
 if (!classChangeListeners.containsKey(cls))
 { …
Run Code Online (Sandbox Code Playgroud)

java generics

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