當前位置: 首頁>>代碼示例>>C#>>正文


C# JsEmitContext.CheckCanEmit方法代碼示例

本文整理匯總了C#中Mono.CSharp.JavaScript.JsEmitContext.CheckCanEmit方法的典型用法代碼示例。如果您正苦於以下問題:C# JsEmitContext.CheckCanEmit方法的具體用法?C# JsEmitContext.CheckCanEmit怎麽用?C# JsEmitContext.CheckCanEmit使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Mono.CSharp.JavaScript.JsEmitContext的用法示例。


在下文中一共展示了JsEmitContext.CheckCanEmit方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: EmitJs

		public override void EmitJs (JsEmitContext jec)
		{
			if (!jec.CheckCanEmit (Location))
				return;

			if (!has_static_constructor && HasStaticFieldInitializer) {
				var c = DefineDefaultConstructor (true);
				c.Define ();
			}

			if (!(this.Parent is NamespaceContainer)) {
				jec.Report.Error (7075, Location, "JavaScript code generation for nested types not supported.");
				return;
			}


			Constructor constructor = null;

			foreach (var member in Members) {
				var c = member as Constructor;
				if (c != null) {
					if ((c.ModFlags & Modifiers.STATIC) != 0) {
						continue;
					} 
					if (constructor != null) {
						jec.Report.Error (7077, c.Location, "JavaScript generation not supported for overloaded constructors");
						return;
					}
					constructor = c;
				}
			}

			var nsc = (NamespaceContainer)this.Parent;
			
			jec.Buf.Write ("\tvar ", this.MemberName.Name, " = (function () {\n", Location);
			jec.Buf.Indent ();

			base.EmitJs (jec);

			jec.Buf.Write ("\treturn ", this.MemberName.Name, ";\n");

			jec.Buf.Unindent();
			jec.Buf.Write ("\t})();\n");

			var nsname = jec.MakeJsNamespaceName(nsc.NS.Name);

			jec.Buf.Write ("\t", nsname, ".", this.MemberName.Name, " = ", this.MemberName.Name, ";\n");
		}
開發者ID:bbqchickenrobot,項目名稱:playscript-mono,代碼行數:48,代碼來源:class.cs


注:本文中的Mono.CSharp.JavaScript.JsEmitContext.CheckCanEmit方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。