Tag: 引用

更新单词Ref:Microsoft.Office.Interop.Word

你好, 我使用Microsoft.Office.Interop.Word库自动将文本填充到Word模板表单(.dotx)。 当我用文本填写表单时,我使用MS Word书签,如下所示: object oBookMark = “Bookmark-To-Find”; doc.FormFields.get_Item(ref oBookMark).Result = Value-To-Insert; 这没有任何问题, 问题是当我向书签添加MS Word引用时。 引用就在那里,所以我不需要在同一文档中填写相同的信息100次。 创建文档时,需要手动更新MS Word Reference。 有没有什么办法解决这一问题? 问题:我可以使用c#代码更新所有引用吗? 有没有更好的方法来做到这一点?

C# – 通过引用传递值类型的良好而灵活的方法?

我的问题,缩小到一个简单的解释,如下:我有一个类需要使用一个数字(不改变它),这可能会改变。 这个数字不一定来自另一个类,它可以是任何类。 但是我想只给它一次“给”它一次,而不是经常不得不调用更新方法或者必须创建一个包装器(因为我再说过,这应该适用于任何类型的数字并且必须包装一切都是不合时宜的)。 这是一些代码,希望它有所帮助: public class SimpleExample { int value; public SimpleExample(int variableOfWhichINeedAReference) { //Of course this won’t work, but I’ll keep it simple. value = variableOfWhichINeedAReference; } public void DisplayValue() { print(value); } } public class RandomClass { int myValue = 10; SimpleExample s = new SimpleExample(myValue); public void WorkWithValue() { myValue++; } public […]

错误:无法加载DLL’。dll’:找不到指定的模块。 (来自HRESULT的exception:0x8007007E) – 这是什么错误?

情况: 我正在尝试运行CharLS JPEG-LS压缩算法实现 该站点中有关于您可以下载C#VS 2010解决方案的源代码。 在解决方案中,有2个C#类库项目,1个非托管VC ++项目和1个C#控制台应用程序。 控制台App调用其中一个类库,“使用CharLS;”,并且该特定库引用了非托管VC ++项目。 控制台应用程序在调试模式下完美运行。 问题: 但是当我为“Release”编译控制台应用程序并运行.exe(可执行文件)时,在此过程中调用某个特定函数时,它会给我这个错误: 错误:无法加载DLL“CharLS.dll”:找不到指定的模块。 (HRESULTexception:0x8007007E) 我也尝试创建另一个项目并从那里引用类库,但是我得到了同样的错误。 我试过通过网络阅读其他解决方案,但他们没有帮助我。

c#类引用而不是实例引用

我可以在本地引用C#中的类,而不是类的实例吗? 以下代码不会编译,但作为示例,例如: void someFunc() { var a = System.Math; var b = a.Abs(4); } 编辑:在真正的程序中,它不是System.Math类,我想构造类并返回构造的值。 我最初并不认为我想要使用该类的上下文是相关的,而且可能不应该。 Anastasiosyal有一个有趣的想法,使用当地的代表来做。

在C#中反序列化过程中创建指向父对象的指针

我有一个类: [Serializable] public class child { public Parent parent; } [Serializable] public class Parent { public List children; } 当我反序列化Parent时,我希望每个孩子都有一个对它的父级的引用。 问题是,在反序列化过程中我可以设置子项的“父”指针吗? 我似乎无法为子进程使用自定义构造函数,因为反序列化始终使用默认构造函数。 如果我实现了ISerializable,那么似乎在创建父级时已经创建了子对象。 有没有其他方法来实现这一目标?

为什么字符串不能比较引用?

我知道这是特殊情况,但为什么==如果它们的值等于字符串,则返回字符串,而不是当它们的引用等于时。 它是否与重载运算符有关?

为引用的程序集抛出FileNotFoundException

第一次尝试使用我引用的程序集中定义的类时,我得到了一个非常奇怪的FileNotFoundException 。 程序集未更改,项目文件中的位置与磁盘上的物理路径正确对应。 当我将安装程序添加到Windows服务和安装项目时,这突然开始在包含两个库项目,Windows服务项目和控制台应用程序的解决方案中失败。 但是,我将控制台应用程序作为单个启动对象,控制台应用程序和服务/安装程序项目之间没有任何引用。

在C#中用另一个替换对象实例

在这个问题中,我想知道是否以及如何做到这一点。 这种技术似乎是非常糟糕的做法,但似乎我正在使用的API(UnityEditor)正在做这样的事情,我只是很好奇。 如果对同一对象有多个引用,是否可以将新对象实例化到同一个内存槽中,以便所有先前的引用都指向新对象? 我发现唯一可行的方法是使用非托管C ++。 基本上发生以下情况: // Original prefab GameObject prefab = x; prefab.tag = “Untagged”; // A copy of the original prefab GameObject prefabCopy = PrefabUtility.InstantiatePrefab(prefab) as GameObject; prefabCopy.tag = “EditorOnly”; // Change from initial value “Untagged” Debug.Log(prefab.tag); // “Untagged” – expected Debug.Log(prefabCopy.tag); // “EditorOnly” – expected // Replace contents of prefab file with […]

对于需要引用其他类的类,C#中的优秀设计模式是什么?

我正在研究C#.NET中的业务问题。 我有两个名为C和W的类,它们将在不同的时间独立实例化。 类C的对象需要包含对类W的0 … n个对象的引用,即C对象最多可包含n个W对象。 每个W对象需要包含对C类的1个对象的引用,即W对象包含在一个C对象中。 通常首先实例化C类的对象。 稍后,将发现并实例化其W内容。 在此之后,我需要将C和W对象相互交叉引用。 这有什么好的设计模式? 我实际上有一些案例,我有三个或四个类,但我们可以谈论两个类,以保持简单。 我在考虑一些简单的事情: class C { public List contentsW; } class W { public C containerC; } 这将暂时起作用,但我可以预见必须编写相当数量的代码来跟踪所有引用及其有效性。 我想在后面实现代码,只对容器进行浅刷新,并对所有引用类进行深度刷新。 还有其他方法,它们有什么优势? 编辑11/3:感谢所有人的好答案和良好的讨论。 我最终选择了jop的答案,因为它最接近我想要的,但其他答案也有帮助。 再次感谢!

引用类型的非初始化vs空值

引用类型变量之间是否存在未初始化或具有空值的区别? 我读到某处非初始化意味着null,但在其他地方我读了别的东西。 谢谢!