我正在开发一个COM加载项和Excel自动化加载项库,其核心代码是用C#编写的.我想为函数设置一个可选参数,我知道这对于C#和VBA,甚至Excel WorksheetFunction都是合法的.但我发现最终可选参数专门用于COM和Automation加载项,这意味着如果首先运行一个加载项,那么效果很好但另一个加载项的可选参数将不起作用.
下面请看示例:
在VS 2013解决方案中,我有两个项目:一个被调用TestVBA,另一个被调用TestExcel.
TestVBA用于COM加载项并通过"Excel 2013加载项"构建,有两个.cs文件:
ThisAddIn.cs此文件自动生成并稍作修改.代码是
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Tools.Excel;
namespace TestVBA
{
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
private ExcelVBA oExcelVBA;
protected override object RequestComAddInAutomationService()
{
if (oExcelVBA == null)
{
oExcelVBA = new ExcelVBA();
}
return oExcelVBA; …Run Code Online (Sandbox Code Playgroud) 我正在学习构建自己的Matrix类并得到关于operator +重载的问题.
Matrix Matrix::operator+(Matrix &b)
{
Matrix temp;
*
*
*
return temp;
}
c = a + b;
Run Code Online (Sandbox Code Playgroud)
这非常有效,但我有点担心,我首先声明一个临时矩阵然后将其复制到最终目标(矩阵c)效率低下?例如,下面是一个天真的矩阵添加函数,
void matrixAdd(Matrix& c, Matrix& a, Matrix& b)
{
c[][]=a[][]+b[][];
}
Run Code Online (Sandbox Code Playgroud)
当然,第一个更容易使用,但第二个会更快?如果是这样,我怎样才能改进第一个呢?