小编Jos*_*nig的帖子

如何在PowerShell中将整数强制转换为枚举类型?

在回答之前仔细阅读!我想将一个整数转换为枚举类型,其中整数值实际上没有在枚举中定义.在VB.Net中,可以使用DirectCast直接将任何整数转换为基于整数的枚举类型.有没有办法在PowerShell中本地完成此操作?

我需要在PowerShell中执行此操作,以便在Office Interop对象(Access.Application.SysCmd)上调用方法,该对象将枚举值作为其第一个参数(AcSysCmdAction),但是我需要传递的实际值(603表示PIA枚举定义中不包括未记录的出口到accde行动.PowerShell的内置类型转换使它将数字或字符串转换为适用的枚举类型,但它不会强制枚举不在枚举中的int值.相反,它会抛出无效的转换异常.现在我正在使用一个动态编译的ScriptControl,它通过VBScript调用SysCmd,但我想尽可能保留PowerShell中的所有内容.

powershell enums casting com-interop

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

使用Master通过自定义布局在VBA for PowerPoint 2010中创建新幻灯片

我有以下VBA代码来创建一个新的PowerPoint幻灯片:

longSlideCount = ActivePresentation.Slides.Count

With ActivePresentation.Slides
    Set slideObject = .Add(longSlideCount + 1, ppLayoutTitle)
End With
Run Code Online (Sandbox Code Playgroud)

...插入'ppLayoutTitle'类型的新幻灯片,但我想知道是否可以在'幻灯片母版视图'中创建自定义布局,然后将该特定幻灯片模板插入到演示文稿中?

提前致谢!!!

powerpoint vba powerpoint-vba powerpoint-2010

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

go test 无法构建:调用可能有格式指令

go test当对库中要按设计进行测试的函数的调用包含格式化指令时,拒绝构建。这是故意的还是错误?不管怎样,有解决方法吗?

请注意,与Call has possibleformatingdirective不同,这不是不接受格式指令的内置函数的调用。它是对我编写的函数的调用,该函数是专门为接受格式化指令而设计的。

这是一个人为但完整的复制品。NotemakeError旨在处理格式字符串。go build工作正常,但go test会产生以下错误并且不运行任何测试:

.\example.go:16:13: makeError call has possible formatting directive %v
FAIL    sandbox/example [build failed]
Run Code Online (Sandbox Code Playgroud)

去版本:go version go1.12.7 windows/amd64

example.go:

.\example.go:16:13: makeError call has possible formatting directive %v
FAIL    sandbox/example [build failed]
Run Code Online (Sandbox Code Playgroud)

example_test.go:

package example

import "fmt"

type ErrExample struct {
    data interface{}
    msg  string
}

func (e *ErrExample) Error() string {
    return e.msg
}

func Divide(f1 float64, f2 float64) …
Run Code Online (Sandbox Code Playgroud)

go

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

依赖于.NET自动垃圾收集器是不好的做法吗?

可以创建大量内存密集型对象,然后放弃对它们的引用.例如,我可能想要从数据库下载和操作一些数据,我将进行100次单独的下载和处理迭代.我可以声明一次DataTable变量,并且对于每个查询,使用构造函数将其重置为新的DataTable对象,从而放弃内存中的旧DataTable对象.

DataTable类具有简单的内置方式来释放它使用的内存,包括Rows.Clear()和.Dispose().因此,在将变量设置为新的DataTable对象之前,我可以在每次迭代结束时执行此操作.或者我可以忘掉它,让CLR垃圾收集器为我做这件事.垃圾收集器似乎非常有效,因此最终结果应该是相同的.当你不需要它们时,显然处理内存繁重的对象(但是添加代码来执行此操作)或者只是依靠垃圾收集器为你做所有的工作(你受到了摆布GC算法,但你的代码更小)?

根据要求,这里是代码说明了回收的DataTable变量示例:

    // queryList is list of 100 SELECT queries generated somewhere else.
    // Each of them returns a million rows with 10 columns.
    List<string> queryList = GetQueries(@"\\someserver\bunch-o-queries.txt");
    DataTable workingTable;

    using (OdbcConnection con = new OdbcConnection("a connection string")) {
        using (OdbcDataAdapter adpt = new OdbcDataAdapter("", con)) {
            foreach (string sql in queryList) {
                workingTable = new DataTable();  // A new table is created. Previous one is abandoned
                adpt.SelectCommand.CommandText = sql;
                adpt.Fill(workingTable);
                CalcRankingInfo(workingTable);
                PushResultsToAnotherDatabase(workingTable);
                // Here I could call workingTable.Dispose() …
Run Code Online (Sandbox Code Playgroud)

.net garbage-collection

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

检查基本拉丁字母(AZ)的最简单方法

也许我错过了一些明显的东西,但有没有更简单的方法来检查一个字符是否是一个基本的拉丁字母(az),而不是转换为字符串并使用正则表达式?:例如:

public static bool IsBasicLetter(Char c) {
    return Regex.IsMatch(c.ToString(), "[a-z]", RegexOptions.IgnoreCase);
}
Run Code Online (Sandbox Code Playgroud)

Char.IsLetter匹配来自许多字母表的数百个字母字符.我可以直接检查代码点,但这感觉很粗略:

public static bool IsBasicLetter(Char c) {
    int cInt = c;
    return !(cInt < 65 || cInt > 122 || (cInt > 90 & cInt < 97));
}
Run Code Online (Sandbox Code Playgroud)

c# validation char

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

在类库中的哪里处理 AssemblyResolve 事件?

我需要动态解析从一个类库到另一个类库的程序集引用。类库是从 PowerShell 脚本加载的,因此在可执行文件中查找依赖程序集的默认 .NET 行为会直接失败,因为可执行文件就是 PowerShell 本身。如何使这些依赖程序集引用正确解析/工作?

更详细地说

我有两个实用程序库:一个是核心库,另一个是执行一些非常具体的解析任务的库。我想在 PowerShell 脚本中动态加载它们,而不将它们安装在 GAC 中。第二个库依赖于第一个库。在VS解决方案中,解析库有一个对核心库的项目引用,带有Copy Local= true

使用后,我可以从解析库输出 bin (/Debug|/Release) 文件夹加载和使用这两个库(此处为 PowerShell):

[Reflection.Assembly]::LoadFile("C:\...thefile.dll")
Run Code Online (Sandbox Code Playgroud)

但是,每当调用解析(依赖)库中的方法来调用核心库中的某些内容时,它都无法解析核心程序集。这……令人沮丧……因为这些文件位于同一文件夹中。其中一个或两个都具有强名称键并没有什么区别。

我现在的解决方法是处理该AssemblyResolve事件。棘手的事情是弄清楚将其放在类库中的何处,因为没有像可执行方法中那样始终在其他任何内容之前执行的单一入口点Main()(请参阅Is there an equivalent of a application_Start for a class library in c#) 。

现在,我已经创建了一个Resolver带有静态构造函数的静态类AssemblyResolve,该静态构造函数附加了 的处理程序,然后在每个解析类中都有一个引用静态解析器类的静态构造函数,强制执行解析器类的静态构造函数。结果是,AssemblyResolve 事件仅附加一次并使用通用的中央代码进行处理。所以它有效。但我讨厌必须向我的所有解析类添加一个时髦的静态构造函数。

有更好的方法来处理这个问题吗?

c# dll assemblies

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

Flash Builder不显示XML或XMLList类的成员

所有突然的Flash Builder都不再显示XML或XMLList类的成员以完成代码.我做了一些实验,创建了一个带有新空项目的全新工作区(以确保它不是我的主要工作集中的一些损坏),并且它似乎只影响Flex项目; Flash Professional项目仍然有效.

Flash Builder版本是最新的(4.6),它基于Eclipse 3.7.

图片将更清楚地显示:

  • 在Flash Professional项目中:在类型变量的名称后输入.或命中会显示成员列表: CTRL + SpaceXMLFlash Professional项目的自动完成功能

  • 在Flex库项目中,仅Object显示默认成员: Flex Libarary项目的自动完成功能

  • 在Flex项目中,仅Object显示默认成员: Flex项目的自动完成功能

今天早上我安装了一些Eclipse Web Components的更新组件,用于编辑XML和XSD文件......

我确实回顾了Flash Builder 4突然停止为某些类自动完成的各种提示,但它们似乎并没有影响这种情况 - 特别是因为它表现在一个只有3个小项目的全新工作区.

更新我完全卸载并重新安装Flash Builder.问题仍然存在.

eclipse autocomplete flash-builder

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

使用唯一索引但没有主键在SQL Server中创建表有什么影响?

这个问题来自我的部门内部讨论,关于制作一个简单的多对多交叉引用表的最佳方法,该表只包含两列,这些列本身就是其他表中的主键.

是否有人有具体证据支持或反对创建具有单个唯一索引但没有主键的表?(替代方案详述如下).

换句话说:有没有人(尤其是MSFT人员)知道SQL Server内部唯一地识别具有主键的行a)和b)没有主键的行?

详细说明:

给定输入表:

CREATE TABLE Foo ( FooID bigint identity(1,1) not null primary key, other stuff... )
CREATE TABLE Bar ( BarID bigint identity(1,1) not null primary key, other stuff... )
Run Code Online (Sandbox Code Playgroud)

三个基本选项是(在所有情况下都假设在FooIDBarID列上创建了一个外键):

-- Option 1: Compound primary key
CREATE TABLE FooBarXRef ( 
    FooID bigint not null
  , BarID bigint not null
  , PRIMARY KEY ( FooID, BarID )
  , CONSTRAINT FK... etc
)

-- Option 2: Independent primary key + unique index …
Run Code Online (Sandbox Code Playgroud)

sql-server primary-key

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

如何实现自增版本号列?

在 SQL Server 中实现基于同一表中另一个字段自动递增的字段的好方法是什么?想象一下,对于column 的每个值都有一个VersionNumber自动递增1到的字段。 nDocumentID

要求:

  • VersionNumber 必须从 1 开始,并且不能跳过任何数字
  • 必须保留 VersionNumber 列。它不能在视图中动态创建,例如 via ROW_NUMBER。这样做的目的是创建审计跟踪。
  • 理想情况下,将防止直接插入和更新 VersionNumber

详细

我正在设计一个需要版本化数据的数据库。这种事情的基本结构是有一个带有不变字段的标题表和一个版本详细信息表,其中包含:

  • 头表的外键
  • 一个版本号
  • 可以随版本更改的字段

诸如SQL Strategies for 'Versioned' DataYet Another SQL Strategy for Versioned Data 等文章讨论了有效查询此类结构的策略,但并未讨论该VersionNumber字段的实际实现(第二篇文章提供了部分示例,但留下了更完整的实现)用于“高级练习”)。

示例 DDL:

CREATE TABLE Invoice (
    InvoiceID   bigint identity(1,1) not null primary key,
    CreateDate  date not null
);

CREATE TABLE InvoiceVersion ( 
    InvoiceVersionID  bigint identity(1,1) not null primary …
Run Code Online (Sandbox Code Playgroud)

sql-server

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

Google 如何从浏览器链接启动 AR Animals ARCore 应用程序?

TL; 博士;

谷歌的新AR 动物在网络上看起来好像是 AR(如AR.js8thWall),但实际上是原生的ARCore应用程序。巧妙之处在于浏览器中的链接(实际上是一个带有非常模糊的事件处理程序链的按钮)会启动ARCore 应用程序本身,而不会提示用户安装任何东西。谷歌是如何做到这一点的?我也想做。

细节

最近谷歌推出了一项搜索功能,允许用户通过点击搜索信息卡中的链接来查看 AR 中动物

这是真正的平面感应、SLAM 跟踪 AR,不需要标记。在我自己的手机(运行 Android 9 的 Pixel 2)上查看示例,位置和角度保真度令人印象深刻。我可以移动手机,四处走动,老虎的脚(例如)保持在几英寸之内。同样,AR 对象具有出色的视觉稳定性,避免了我见过的大多数基于标记的 AR.js 应用程序的抖动,或者我在 8th Wall 的非标记 示例中看到的平庸的对象锚定。

作为从事通过网络交付的 AR 的开发人员,我很好奇他们是如何取得如此高质量的结果的。他们是否拥有不与 THREE.js / ARKit / AR.js 开源项目共享的卓越专有技术?

不。使用笔记本电脑上的 USB 远程检查手机调试老虎示例,加上一些间接线索,我得出的结论是它们看起来非常好,因为它们不是网络 AR,而是使用 ARCore 的原生 AR。不知何故,谷歌让用户的手机在没有任何安装提示的情况下加载一个原生的 ARCore 应用程序(系统日志使它看起来是 ARCore 本身作为一个应用程序启动)。尝试切换到另一个应用程序会导致 AR 应用程序自动关闭,从而难以调试或检查它。

Google 自己的 ARCore 文档通常暗示您需要将应用发布到 Play 商店才能真正将支持 ARCore 的软件交到用户手中。那么,有人知道谷歌是如何做他们在这里做的吗?

所有图片都是我的原创作品

信息卡链接

带有“以 3D 模式查看”链接的信息卡

提示向 ARCore 授予应用权限: …

arcore ar.js

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