小编Lee*_*ite的帖子

Excel:两个范围的标量积

我试图找到一种合适的方法来计算两个范围的标量积.例如,A1:A3B1:B3将的产品A1*B1 + A2*B2 + A3*B3.有没有办法做到这一点?硬编码这个计算对于大范围来说是相当繁琐的.

excel scalar formula

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

C#是否支持inout参数?

在C#中,我使用a StreamReader来读取文件,每行一行.我还保留当前行的编号int,以报告可能的错误消息.

阅读每一行都会进行一些测试(例如,开头的行#是注释,需要跳过),所以我打算将整个阅读过程放在一个函数中,这将继续阅读,直到它遇到一个有用的行,然后返回该行.如果遇到EOF它就会返回null.

当我将此函数定义为时,我认为我很聪明string read(StreamReader sr, out int lineNumber),但现在事实证明C#将无法像lineNumber++在函数内部那样做.它假定变量尚未分配,可能是因为它无法知道它是否已在此函数调用之前分配.

所以,问题很简单:我如何指定这个变量是一个inout参数(我认为这是一个术语;我听说它是​​在其他编程语言的上下文中提到的)?这首先是可能的吗?我绝对不会成为lineNumber班上的一员,所以这不是一个选择.

c# parameters function out

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

为什么要使用类级访问修饰符而不是对象级?

在使用C#时,我最近意识到我可以FooFoo静态函数调用对象的私有函数,甚至可以从其他Foo对象调用.在我了解了访问修饰符的所有内容之后,这对我来说听起来很奇怪.

据我所知,当你做一些属于某种内部过程的事情时,你会把一个函数设为私有.只有对象本身知道何时使用这些函数,因为其他对象不应该/不能控制对象的流.是否有任何理由为什么同一类别的其他对象应该从这个相当简单的规则中排除?

根据要求,一个例子:

public class AClass {
    private void doSomething() { /* Do something here */ }
    public void aFunction() {
        AClass f = new AClass();
        f.doSomething(); // I would have expected this line to cause an access error.
    }
}
Run Code Online (Sandbox Code Playgroud)

c# class object access-modifiers

17
推荐指数
2
解决办法
4653
查看次数

没有if语句的编程?

我记得有些时候(可能是几年前)我在Stackoverflow上阅读了尽可能少的if-tests编程的魅力.这个问题有点相关,但我认为压力在于使用许多小函数,它们根据接收到的参数返回由测试确定的值.一个非常简单的例子就是使用它:

int i = 5; 
bool iIsSmall = isSmall(i);
Run Code Online (Sandbox Code Playgroud)

isSmall()看起来像这样:

private bool isSmall(int number)
{
    return (i < 10);
}
Run Code Online (Sandbox Code Playgroud)

而不只是这样做:

int i = 5;
bool isSmall;
if (i < 10) {
    isSmall = true;
} else {
    isSmall = false;
}
Run Code Online (Sandbox Code Playgroud)

(逻辑上这段代码只是示例代码.它不是我正在制作的程序的一部分.)

我相信这样做的原因是因为它看起来更好并且使程序员不易出现逻辑错误.如果正确应用了这种编码约定,你几乎看不到任何地方的if-tests,除了那些唯一目的是进行测试的函数.

现在,我的问题是:有关于此约定的任何文档吗?在这种风格的支持者和反对者之间是否有任何地方可以看到疯狂的争论?我试着搜索引入我的Stackoverflow帖子,但我再也找不到了.

最后,我希望这个问题不会被打倒,因为我不是要求解决问题.我只是希望能够听到更多关于这种编码风格的信息,并且可能会提高我将来会做的所有编码的质量.

functional-programming if-statement coding-style conventions

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

在C#中有条件地调用构造函数

假设我Foo在C#中有以下构造函数:

public Foo()
{
    // ...
}
protected Foo(bool connect)
    : this()
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种只this()connect参数出现时才执行该部件的方法true.这是一种方法吗?

(对于好奇的人:这背后的原因是Foo类创建了连接到某些东西的对象;当它们被创建时,它们应该总是尝试连接.现在,我正在为它创建一个模拟器(或MOCK)扩展Foo类这就是我加入了.protected构造函数;当使用这一块,应该是不会建立实际的连接选项,我想实现这个同时改变Foo类尽可能少).

c# conditional constructor

9
推荐指数
2
解决办法
4344
查看次数

你怎么称呼结构的实例?

这纯粹是出于兴趣.我搜索了一下,知道classes被调用的实例objects,但是我找不到structC,C++,C#等实例的正确单词.我们甚至还有一个字吗?

c struct class

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

如何在Visual Studio 2010中正确引用dll?

我有一个包含C++ DLL项目的解决方案,以及一个将使用此DLL的C#项目(通过使用PInvoke).

dll正在构建到x64/Release我的解决方案文件夹中的文件夹,这是有道理的,因为这样C#项目不必戳入DLL项目的文件夹.

我想知道现在引用它的正确方法是什么.现在,DLL项目是C#项目的依赖项.我的直觉告诉我,这应该已经足够了,但是C#项目说它无法找到DLL.

我应该只是添加.dll文件作为参考吗?我认为现在可能会有效,但从长远来看,当项目设置可能会发生变化时会破坏.

c# c++ dll visual-studio-2010

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

如何在Unity3D中使用C++ DLL?

我知道这个类似的问题,但它没有回应我的问题.

.dll使用Visual Studio 2010 编写了两个.一个是用C++编写的,并且用一个用C++编写的SDK进行通信.另一个是C++库的C#包装器,因此它可以在C#上下文中使用.

我的计划是,这会让我使用我的代码Unity3D,但显然事实并非如此.似乎Unity3D不允许我将.dlls作为资产导入,如果它们不是.NET汇编.所以我可以添加我的C#包装器,但不能添加C++ dll.

DllNotFoundException每当我尝试访问C++库时,都会导致这种情况.我试过简单地将C++库复制到Assets/Plugins文件夹中,但这会产生相同的结果.

有没有办法正确地做到这一点?这是我项目设置中非常重要的一部分.

c# c++ dll unity-game-engine

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

在C#的Split中逃避角色()

我正在解析一些分隔符分隔值,如果?分隔符作为其中一个值的一部分出现,则将其指定为转义字符.

例如:if :是分隔符,某个字段是值19:30,这需要写为19?:30.

目前,我使用string[] values = input.Split(':');以获取所有值的数组,但在了解了这个转义字符后,这将不再起作用.

有没有办法让Split逃避字符考虑在内?我检查了重载方法,似乎没有直接这样的选项.

c# string split escaping

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

VBA:为什么人们在"Next"语句中包含变量的名称?

我总是像这样编写我的For循环:

For foo = 1 to 10
    ' do something
Next
Run Code Online (Sandbox Code Playgroud)

但是,当我在线阅读代码片段时,人们总是这样做:

For foo = 1 to 10
    ' do something
Next foo
Run Code Online (Sandbox Code Playgroud)

我没有注意到两者之间有任何区别,我找不到任何关于next声明的文档是更可取的.这两者之间有什么区别(如果有的话)?

syntax vba for-loop semantics

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