我想给一个变量赋值为null的初始值,并在接下来的分配其价值if- else块,但编译器给了一个错误,
必须初始化隐式类型的局部变量.
我怎么能实现这个目标?
我试图使用Shell32在c#中获取扩展文件属性.
我的代码如下.
var file = FileUpload1.PostedFile;
List<string> arrHeaders = new List<string>();
Shell shell = new ShellClass();
//Exception is thrown at next line
Folder rFolder = shell.NameSpace(Path.GetDirectoryName(file.FileName));
FolderItem rFiles = rFolder.ParseName(Path.GetFileName(file.FileName));
for (int i = 0; i < short.MaxValue; i++)
{
string value = rFolder.GetDetailsOf(rFiles, i).Trim();
arrHeaders.Add(value);
}
Run Code Online (Sandbox Code Playgroud)
我得到如下例外情况.

消息 - 无法将"Shell32.ShellClass"类型的COM对象强制转换为接口类型"Shell32.IShellDispatch6".此操作失败,因为对IID为"{286E6F1B-7113-4355-9562-96B7E9D64C54}"的接口的COM组件的QueryInterface调用由于以下错误而失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE)) .
堆栈跟踪 - 位于Shell32.ShellClass.NameSpace(Object vDir)的System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc,IntPtr pCPCMD,IntPtr&ppTarget,Boolean&pfNeedsRelease),位于c:中的PBSWebApplication.Test.Button1_OnClick(Object sender,EventArgs e)\Projects\PBSWebApplication\PBSWebApplication\PBSWebApplication\Test.aspx.cs:System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)at System.Web.UI.WebControls.Button.OnClick(EventArgs e)的第33行System.Web.UI.Page.RaisePostBackEvent上的System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)中的System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) System.Web.UI.Page.ProcessRequestMain上的(NameValueCollection postData)(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)
如何解决这个问题?
谢谢.
我的页面上有一个谷歌地图,我在地图上显示多个标记,每个标记都附有信息窗口,当我点击标记时,它的相关信息窗口会打开并显示标记的信息.
我在infowindow有一个按钮,用于更新标记的相关状态,更新后我更改了标记图标.
那么,我如何获得点击按钮的infowindow的精确标记对象.
请注意,一次可能有多个infowindows打开.
谢谢.
我收到System.InvalidOperationException:收集被修改; 枚举操作可能无法执行.我的以下代码中的错误.
//temporary var for storing column sort orders according to view type
Dictionary<string, bool?> tempColumnSortOrders=new Dictionary<string,bool?>(4);
//Check for column name in col list
if (tempColumnSortOrders.ContainsKey(fieldToSort))
{
//If exists set column sort order to new sort order
//Set new sort order
tempColumnSortOrders[fieldToSort] = sortOrder;
var tempSortOrders = tempColumnSortOrders;
//remove sort order of other columns
foreach (var kvp in tempSortOrders)
{
//Reset other columns sort other than current column sort
if (kvp.Key != fieldToSort)
{
tempSortOrders[kvp.Key] = null;
} …Run Code Online (Sandbox Code Playgroud) 我们可以在谷歌地图中一次只显示一个信息窗口,并为多个标记显示多个信息窗口。
意思是,当我单击标记时隐藏/关闭其他信息窗口并仅显示当前标记信息窗口。
谢谢。