ما هي بعض الحالات التي أشجار التعبير هي مفيدة ؟

StackOverflow https://stackoverflow.com/questions/27726

  •  09-06-2019
  •  | 
  •  

سؤال

أنا أفهم تماما مفهوم التعبير الأشجار ، ولكن أواجه صعوبة في محاولة للعثور على الحالات التي هي مفيدة.هل هناك نسخة معينة في التعبير الأشجار يمكن تطبيقها ؟ أو هو مفيد فقط كما نقل آلية الرمز ؟ أشعر أن أنا في عداد المفقودين شيئا هنا.وذلك بفضل!

هل كانت مفيدة؟

المحلول

أو هو مفيد فقط كما نقل آلية الرمز ؟

إنه المفيدة آلية التنفيذ التعليمات البرمجية.باستخدام نمط مترجم, والتعبير الأشجار مباشرة يمكن أن تفسر.وهذا مفيد لأنه من السهل جدا وسريعة التنفيذ.مثل المترجمين الفوريين في كل مكان وتستخدم حتى في الحالات التي لا يبدو أن "تفسير" أي شيء مثلللطباعة هياكل متداخلة.

نصائح أخرى

بعض وحدة اختبار ساخرا الأطر الاستفادة من أشجار التعبير من أجل إعداد بقوة كتبته التوقعات/التحقق.أي:

myMock.Verify(m => m.SomeMethod(someObject)); // tells moq to verify that the method
                                              // SomeMethod was called with 
                                              // someObject as the argument

هنا التعبير هو في الحقيقة لم يعدم ، ولكن التعبير في حد ذاته يحمل معلومات مثيرة للاهتمام.البديل دون التعبير سوف تكون الأشجار

myMock.Verify("SomeMethod", someObject) // we've lost the strong typing

أشجار التعبير هي مفيدة عندما تحتاج إلى الوصول إلى وظيفة المنطق من أجل تغيير أو إعادة تطبيقه في بعض الطريق.

Linq to SQL هو مثال جيد:

//a linq to sql statement
var recs (
    from rec in LinqDataContext.Table
    where rec.IntField > 5
    select rec );

إذا لم يكن لدينا أشجار التعبير هذا البيان أن عودة كافة السجلات ، ومن ثم تطبيق C# أين المنطق في كل.

مع أشجار التعبير where rec.IntField > 5 يمكن تحليل في SQL:

--SQL statment executed
select *
from [table]
where [table].[IntField] > 5
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top