James
James

Reputation: 1945

convert lambda expression to function

I wish to debug lambda expression but its not possible as it sets breakpoint on whole expression. Here is my lambda expression

public bool CanRevert => _objectEntity != null && !(_objectEntity != null &&
                                                        ObjectDescription == _objectEntity.DTO.Description &&
                                                        ObjectInstance == _objectEntity.DTO.ObjectInstance.ToString() &&
                                                        Name == _objectEntity.DTO.ObjectName &&
                                                        (SelectedDevice != null && SelectedDevice.Id == _objectEntity.DTO.DeviceID) &&
                                                        (_objectEntity.DTO.ObjectCategoryID.HasValue ? (SelectedObjectCategory != null && SelectedObjectCategory.Id == _objectEntity.DTO.ObjectCategoryID.Value) : SelectedObjectCategory == null) &&
                                                        (_objectEntity.DTO.ObjectTypeID.HasValue ? (SelectedObjectType != null && SelectedObjectType.Id == _objectEntity.DTO.ObjectTypeID.Value) : SelectedObjectType == null));

I wanted to put breakpoint inside selectedDevice but i cant. Hence i tried to write it like

public bool CanRevert()

    {
        if (SelectedDevice != null)
        {
            var s = SelectedDevice.Id == _objectEntity.DTO.DeviceID;
        }
        var d = _objectEntity != null && !(_objectEntity != null &&
                                           ObjectDescription == _objectEntity.DTO.Description &&
                                           ObjectInstance == _objectEntity.DTO.ObjectInstance.ToString() &&
                                           Name == _objectEntity.DTO.ObjectName &&
                                           (SelectedDevice != null && SelectedDevice.Id == _objectEntity.DTO.DeviceID) &&
                                           (_objectEntity.DTO.ObjectCategoryID.HasValue ? (SelectedObjectCategory != null && SelectedObjectCategory.Id == _objectEntity.DTO.ObjectCategoryID.Value) : SelectedObjectCategory == null) &&
                                           (_objectEntity.DTO.ObjectTypeID.HasValue ? (SelectedObjectType != null && SelectedObjectType.Id == _objectEntity.DTO.ObjectTypeID.Value) : SelectedObjectType == null));

        return d;
    }

Is it right way to convert it? I ask because i am starting to get somewhere in application that Binding to this method is not supported

Upvotes: 0

Views: 216

Answers (1)

MrMoeinM
MrMoeinM

Reputation: 2378

You can achieve the same result like this.

  • Put a breakpoint in your expression.

  • Start Debugging (F5)

  • Highlight (SelectedDevice != null && SelectedDevice.Id == _objectEntity.DTO.DeviceID) in your expression

  • Right-click and select Add Watch

  • Now you have its calculated value in the Watch window. (Usually pops up at the bottom)

  • You can use Quick Watch (Shift+F9) if you want its value once.

Upvotes: 1

Related Questions